前往題目
想法
- 為了這題先花了兩三個小時弄懂直到能自己寫出BFS
- 隔一天再來挑戰這題寫的就蠻順的,但是回想BFS加上coding,從頭寫到尾就花了半小時
- 最後雖然還是fail,但離正解只差一步之遙
- 原因是沒完全搞清楚需要更新的cell以及不用更新的cell之間的關係
- 因為需要更新的cell,初始值是1,讓我腦袋打結
思路
由於是算距離,所以這題利用BFS不斷更新每個相鄰cell的距離
- 一樣先記錄幾行幾列,上下左右方向定義好 (這些都是BFS模板有的)
- 接著紀錄終點,也就是0都在哪些位置,放到queue裡面,其餘用-1填充
- 然後從每個終點開始的上下左右cell開始更新
- 被更新的cell一樣放到queue以待下次成為新的終點,看其上下左右cell更新數值
Code
2023/12/08
再次嘗試,但有點掙扎,沒想到是除了0
以外的全部都賦值為-1