機械人在乙個無限大小的網格上行走,從點 (0, 0) 處開始出發,面向北方。該機械人可以接收以下三種型別的命令:
-2:向左轉 90 度
-1:向右轉 90 度
1 <= x <= 9:向前移動 x 個單位長度
在網格上有一些格仔被視為障礙物。
第 i 個障礙物位於網格點 (obstacles[i][0], obstacles[i][1])
機械人無法走到障礙物上,它將會停留在障礙物的前乙個網格方塊上,但仍然可以繼續該路線的其餘部分。
返回從原點到機械人的最大歐式距離的平方。
輸入: commands = [4,-1,4,-2,4], obstacles = [[2,4]]
輸出: 65
解釋: 機械人在左轉走到 (1, 8) 之前將被困在 (1, 4) 處
class solution ;
int dy[4] = ;
int x = 0, y = 0, di = 0;
unordered_set> obstacleset;
for (vectorobstacle: obstacles)
obstacleset.insert(make_pair(obstacle[0], obstacle[1]));
int ans = 0;
for (int cmd: commands) }}
}return ans;
}};
重點在於旋轉如何旋轉,看了題解以後恍然大悟,設定了兩個陣列標定dx和dy,重點來了!!!
座標陣列順序為上、右、下、左
那麼每一次的旋轉命令就是當前值(di+m)%4就得到當前應旋向的位置,得出來的值指的是旋轉了n次以後相對於最開始的方向,但是相對每次來說,方向是m,m為方向位,加上之前的di+m就是當前的方向位,多於4的部分就說明是旋轉回來的
874 模擬行走機械人
機械人在乙個無限大小的網格上行走,從點 0,0 處開始出發,面向北方。該機械人可以接收以下三種型別的命令 在網格上有一些格仔被視為障礙物。第i個障礙物位於網格點 obstacles i 0 obstacles i 1 如果機械人試圖走到障礙物上方,那麼它將停留在障礙物的前乙個網格方塊上,但仍然可以繼...
模擬行走機械人001
鏈結 機械人在乙個二維平面上行走,二維平面有障礙物,以座標形式給出。機械人可以左轉和右轉,前行3種狀態。求給定機械人行動動作陣列,完成過程中的最大歐氏距離?二維陣列 貪心?每次乙個動作完成之後,進行最大值更新 使用map和set進行障礙物的初始化!根據map中的第乙個橫座標,把該橫座標對應的所有縱座...
874 模擬行走機械人
題目描述 機械人在乙個無限大小的網格上行走,從點 0,0 處開始出發,面向北方。該機械人可以接收以下三種型別的命令 2 向左轉 90 度 1 向右轉 90 度 1 x 9 向前移動 x 個單位長度 在網格上有一些格仔被視為障礙物。第 i 個障礙物位於網格點 obstacles i 0 obstacl...