模擬行走機械人001

2021-10-21 07:26:11 字數 1151 閱讀 4074

鏈結

機械人在乙個二維平面上行走,二維平面有障礙物,以座標形式給出。機械人可以左轉和右轉,前行3種狀態。求給定機械人行動動作陣列,完成過程中的最大歐氏距離?

二維陣列

貪心?每次乙個動作完成之後,進行最大值更新

使用map和set進行障礙物的初始化!根據map中的第乙個橫座標,把該橫座標對應的所有縱座標上有障礙物的,進行構造map對映,

參照題解

模擬這個機械人的構造過程!

如果再加乙個後轉,也就是直接(dir+2)%4而已!!!

轉向,東西南北,使用0-1-2-3四個數字表示,然後進行取餘操作,即可根據題目中的左轉右轉,更新東西南北的方向!

時間o(m+n)機械人動作陣列和障礙物陣列的長度

空間:o(n)障礙物陣列的長度

# define bei 0

# define nan 2

# define xii 3

# define don 1

int x,y,dir,mx;

class

solution

x=y=mx=0;

dir=bei;

for(

auto

&cmd:commands)

if(dir==xii)

while

(cmd && obs[x-1]

.count

(y)==0)

if(dir==don)

while

(cmd &&

!obs[x+1]

.count

(y))

if(dir==nan)

while

(cmd &&

!obs[x]

.count

(y-1))

--cmd ,

--y;

mx=max(mx,x*x+y*y);}

if(cmd==-2

) dir=

(dir+3)

%4;if

(cmd==-1

) dir=

(dir+1)

%4;//mx=max(mx,x*x+y*y); // 位置不對

}return mx;}}

;

874 模擬行走機械人

機械人在乙個無限大小的網格上行走,從點 0,0 處開始出發,面向北方。該機械人可以接收以下三種型別的命令 在網格上有一些格仔被視為障礙物。第i個障礙物位於網格點 obstacles i 0 obstacles i 1 如果機械人試圖走到障礙物上方,那麼它將停留在障礙物的前乙個網格方塊上,但仍然可以繼...

lettcode 模擬行走機械人

機械人在乙個無限大小的網格上行走,從點 0,0 處開始出發,面向北方。該機械人可以接收以下三種型別的命令 2 向左轉 90 度 1 向右轉 90 度 1 x 9 向前移動 x 個單位長度在網格上有一些格仔被視為障礙物。第 i 個障礙物位於網格點 obstacles i 0 obstacles i 1...

874 模擬行走機械人

題目描述 機械人在乙個無限大小的網格上行走,從點 0,0 處開始出發,面向北方。該機械人可以接收以下三種型別的命令 2 向左轉 90 度 1 向右轉 90 度 1 x 9 向前移動 x 個單位長度 在網格上有一些格仔被視為障礙物。第 i 個障礙物位於網格點 obstacles i 0 obstacl...