三 機械人大冒險(LCP3)

2021-09-27 10:36:56 字數 1201 閱讀 5310

題目描述:

力扣團隊買了乙個可程式設計機械人,機械人初始位置在原點(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...