題目描述:
機械人在乙個無限大小的網格上行走,從點 (0, 0) 處開始出發,面向北方。該機械人可以接收以下三種型別的命令:
-2:向左轉 90 度
-1:向右轉 90 度
1 <= x <= 9:向前移動 x 個單位長度
在網格上有一些格仔被視為障礙物。
第 i 個障礙物位於網格點 (obstacles[i][0], obstacles[i][1])
機械人無法走到障礙物上,它將會停留在障礙物的前乙個網格方塊上,但仍然可以繼續該路線的其餘部分。
返回從原點到機械人所有經過的路徑點(座標為整數)的最大歐式距離的平方。
示例 1:
輸入: commands = [4,-1,3], obstacles =
輸出: 25
解釋: 機械人將會到達 (3, 4)
示例 2:
輸入: commands = [4,-1,4,-2,4], obstacles = [[2,4]]
輸出: 65
解釋: 機械人在左轉走到 (1, 8) 之前將被困在 (1, 4) 處
0 <= commands.length <= 10000
0 <= obstacles.length <= 10000
-30000 <= obstacle[i][0] <= 30000
-30000 <= obstacle[i][1] <= 30000
答案保證小於 2 ^ 31
方法1:
主要思路:
(1)先將障礙座標進行儲存;
(2)引入四個方向的變換;
(3)儲存中間路徑,及中間路徑可能獲得的最大值;
class
solution
//移動的方向
int dx[4]
=;int dy[4]
=;int i=0;
//中間路徑
int max_len=0;
int x=0;
int y=0;
for(
int& com:commands)
else
if(com==-2
)else
else}}
}return max_len;}}
;
874 模擬行走機械人
機械人在乙個無限大小的網格上行走,從點 0,0 處開始出發,面向北方。該機械人可以接收以下三種型別的命令 在網格上有一些格仔被視為障礙物。第i個障礙物位於網格點 obstacles i 0 obstacles i 1 如果機械人試圖走到障礙物上方,那麼它將停留在障礙物的前乙個網格方塊上,但仍然可以繼...
Leetcode 874 模擬行走機械人
如果機械人試圖走到障礙物上方,那麼它將停留在障礙物的前乙個網格方塊上,但仍然可以繼續該路線的其餘部分。返回從原點到機械人的最大歐式距離的平方。示例 1 輸入 commands 4,1,3 obstacles 輸出 25解釋 機械人將會到達 3,4 示例 2 輸入 commands 4,1,4,2,4...
leetcode 874 模擬行走機械人
機械人在乙個無限大小的網格上行走,從點 0,0 處開始出發,面向北方。該機械人可以接收以下三種型別的命令 在網格上有一些格仔被視為障礙物。第i個障礙物位於網格點 obstacles i 0 obstacles i 1 如果機械人試圖走到障礙物上方,那麼它將停留在障礙物的前乙個網格方塊上,但仍然可以繼...