LeetCode 1197 進擊的騎士(BFS)

2021-10-08 20:21:10 字數 1399 閱讀 1680

乙個座標可以從 -infinity 延伸到 +infinity 的無限大的 棋盤上,你的 騎士 駐紮在座標為[0, 0]的方格裡。

騎士的走法和中國象棋中的馬相似,走 「日」 字:即先向左(或右)走 1 格,再向上(或下)走 2 格;或先向左(或右)走 2 格,再向上(或下)走 1 格。

每次移動,他都可以按圖示八個方向之一前進。

現在,騎士需要前去征服座標為[x, y]的部落,請你為他規劃路線。

最後返回所需的最小移動次數即可。本題確保答案是一定存在的。

示例 1:

輸入:x =

2, y =

1輸出:1

解釋:[0,

0] → [2,

1]示例 2:

輸入:x =

5, y =

5輸出:4

解釋:[0,

0] → [2,

1] → [4,

2] → [3,

4] → [5,

5]|x|

+|y|

<=

300

class

solution,,

,,,,

,}; x =

abs(x)

, y =

abs(y)

;//對稱的,變成正的

int m = x+

20, n = y+20;

//放大一點

vector

bool

>>

visited

(m, vector<

bool

>

(n,false))

; x +=10

, y +=10

;//偏移10個單位,保證邊界的上情況能夠覆蓋

queue

int>> q;

q.push()

;//起點

visited[10]

[10]=

true

;int step =

0, size, i, j, k, ni, nj;

while

(!q.

empty()

)); visited[ni]

[nj]

=true;}

}}step++;}

return-1

;}};

296 ms 34.4 mb

我的csdn部落格位址

LeetCode5073 進擊的騎士

乙個座標可以從 infinity延伸到 infinity的 無限大的 棋盤上,你的 騎士 駐紮在座標為 0,0 的方格裡。騎士的走法和中國象棋中的馬相似,走 日 字 即先向左 或右 走 1 格,再向上 或下 走 2 格 或先向左 或右 走 2 格,再向上 或下 走 1 格。每次移動,他都可以按圖示八...

進擊的奶牛

題面 from luogu 進擊的奶牛 farmer john建造了乙個有n 2 n 100,000 個隔間的牛棚,這些隔間分布在一條直線上,座標是x1,xn 0 xi 1,000,000,000 他的c 2 c n 頭牛不滿於隔間的位置分布,它們為牛棚裡其他的牛的存在而憤怒。為了防止牛之間的互相打...

進擊的物件池

前面有一篇文章說過在 中如果要高頻地建立乙個物件 比如一些及時通訊的socket等等 怎麼通過raii技法進行記憶體優化,而且這些物件在程式中的生存週期比較短,搞幾下就沒用了,尤其是一些執行緒之類,如果要完成什麼阻塞任務,雖然它就搞那麼幾秒,但放在主線程就是會卡住介面,讓使用者體驗很差,然而執行緒的...