題目描述:
力扣團隊買了乙個可程式設計機械人,機械人初始位置在原點(0, 0)。小夥伴事先給機械人輸入一串指令command,機械人就會無限迴圈這條指令的步驟進行移動。指令有兩種:
u: 向y軸正方向移動一格
r: 向x軸正方向移動一格。
不幸的是,在 xy 平面上還有一些障礙物,他們的座標用obstacles表示。機械人一旦碰到障礙物就會被損毀。
給定終點座標(x, y),返回機械人能否完好地到達終點。如果能,返回true;否則返回false。
示例 1:
輸入:command = 「urr」, obstacles = , x = 3, y = 2
輸出:true
解釋:u(0, 1) -> r(1, 1) -> r(2, 1) -> u(2, 2) -> r(3, 2)。
示例 2:
輸入:command = 「urr」, obstacles = [[2, 2]], x = 3, y = 2
輸出:false
解釋:機械人在到達終點前會碰到(2, 2)的障礙物。
示例 3:
輸入:command = 「urr」, obstacles = [[4, 2]], x = 3, y = 2
輸出:true
解釋:到達終點後,再碰到障礙物也不影響返回結果。
限制:2 <= command的長度 <= 1000
command由u,r構成,且至少有乙個u,至少有乙個r
0 <= x <= 1e9, 0 <= y <= 1e9
0 <= obstacles的長度 <= 1000
obstacles[i]不為原點或者終點
其實比較簡單,將所有的橫座標作為map的key,value為對應的阻塞陣列的縱座標為乙個hashset,那麼進行遍歷即可
需要注意的是退出迴圈的條件是走的x或者是y已經過於給定的範圍,因為這裡不可能返回
class solution
int curx = 0;
int cury = 0;
while (true)else
if(curx == x && cury == y)
if(map.getordefault(curx,new hashset<>()).contains(cury))
if(!(curx <= x && cury <= y))}}
}}
LCP 3 機械人大冒險(雜湊)
力扣團隊買了乙個可程式設計機械人,機械人初始位置在原點 0,0 小夥伴事先給機械人輸入一串指令command,機械人就會無限迴圈這條指令的步驟進行移動。指令有兩種 u 向y軸正方向移動一格 r 向x軸正方向移動一格。不幸的是,在 xy 平面上還有一些障礙物,他們的座標用obstacles表示。機械人...
leetcode LCP3 機械人大冒險(C )
力扣團隊買了乙個可程式設計機械人,機械人初始位置在原點 0,0 小夥伴事先給機械人輸入一串指令command,機械人就會無限迴圈這條指令的步驟進行移動。指令有兩種 u 向y軸正方向移動一格 r 向x軸正方向移動一格。不幸的是,在 xy 平面上還有一些障礙物,他們的座標用obstacles表示。機械人...
Letcode 機械人大冒險python3實現
一 思路 第一種 一開始想法是直接暴力解決,只要計算機計算能力夠強,那麼就可以直接解決。不過會出現執行時間超時的提示,所以這種思路行不通,這是由於後面題目含有條件限制 1 2 command的長度 1000 2 command由u,r構成,且至少有乙個u,至少有乙個r 3 0 x 1e9,0 y 1...