機械人在乙個無限大小的網格上行走,從點 (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
思路:記錄每一次轉身所面對的方向在x,y方向上的可移動距離,接著,在機械人現所在的點每次移動一次,看移動後的位置是否存在障礙物,若存在,則不前進,否則前進,到最後點,計算出距離的平方。
class
solution,,
,}; vector<
int> direction=dir[0]
;int point[2]
=;int index=0;
for(
int i =
0; i < commands.
size()
; i++
)else
if(commands[i]==-
2)else;if
(!count
(obstacles.
begin()
,obstacles.
end(
),tmp)
)else
break;}
}}return
pow(point[0]
,2)+
pow(point[1]
,2);
}};
NOIP模擬 行走
我有個願望,我希望走到你身邊。這是個奇異的世界,世界上的n 1條路聯結起來形成一棵樹,每條路有乙個對應的權值ci。現在我會給出q組詢問或操作。每次詢問我會從乙個x點走到y點,初始在x點我會有乙個數字v,然後每走過一條權值為c的邊,我的v就會變成v c 向下取整 問最後到y時v變成了什麼。每次修改我會...
NOIP模擬 行星通道計畫
時限500ms 考完才發現,很裸的二維樹狀陣列也能過 可以畫圖發現,能滿足兩條線相交,只有兩種情況 1.大的比大的大,小的在中間 9比7大,2在1和7中間 2.小的比小的小,大的在中間 或者說1比2小,7在2和9中間 還有各種修改操作,第乙個想到的就是樹狀陣列,線段樹之類的。而二維樹狀陣列維護的就是...
874 模擬行走機械人
機械人在乙個無限大小的網格上行走,從點 0,0 處開始出發,面向北方。該機械人可以接收以下三種型別的命令 在網格上有一些格仔被視為障礙物。第i個障礙物位於網格點 obstacles i 0 obstacles i 1 如果機械人試圖走到障礙物上方,那麼它將停留在障礙物的前乙個網格方塊上,但仍然可以繼...