敘述
這是 Algorithm I
的第七天第一個題目,總共有兩題。
- 難度:
Easy
- 花費時間: 20 min
- 題目
給你一個 MxN Matrix
還有一個指定的點位 (sr
, sc
) 從點位開始,相鄰的點位如果跟原點位同數字的話,就把相鄰的點位替換成目標數字。
點我開啟限制與範例
限制:
m == image.length
n == image[i].length
1 <= m, n <= 50
0 <= image[i][j], color < 216
0 <= sr < m
0 <= sc < n
Example 1:
1 | Input: image = [[1,1,1],[1,1,0],[1,0,1]], sr = 1, sc = 1, color = 2 |
Example 2:
1 | Input: image = [[0,0,0],[0,0,0]], sr = 0, sc = 0, color = 0 |
筆記
圖型搜索法的練手題,基本沒難度,就是讓你練習怎麼去做搜尋的,這題的題意要用廣度或是深度優先搜尋都沒問題。
基本邏輯如下:
- 看當前這格是不是跟起點一樣
- 是: 把這格換成目標數字,然後走下步
- 不是: 跳出
- 把 sr, sc 分別加減等於四個方向的下一個目標,然後檢查他。
這題有一個重點是,由於替換後的數字就不會等於原數字了,所以基本上題目已經強制避免讓你走到走過的地方,這在很多高級題目上是不會有的。
JS DFS Recursive
1 | /** |
Java BFS Iterative
1 | class Solution { |