給你乙個由 『1』(陸地)和 『0』(水)組成的的二維網格,請你計算網格中島嶼的數量。
島嶼總是被水包圍,並且每座島嶼只能由水平方向和/或豎直方向上相鄰的陸地連線形成。
此外,你可以假設該網格的四條邊均被水包圍。
解題思路:
dfs函式的作用:找到包含grid[i][j]格仔的島嶼的全部格仔,並將其全部置為』2』(已訪問狀態)。
注意點:
1.將訪問過的網格設定為『2』 而不是 『0』,因為設定為0會導致無法區分是訪問過的陸地還是海洋。
2.可以將dfs模擬於遞迴法遍歷二叉樹。
(1)遞迴的退出條件:1)如果出界 2)如果該網格已經訪問過(模擬二叉樹:判斷是否節點為空)
(2)遞迴的引數,網格以及當前位置(模擬二叉樹:當前根節點)
(3)遞迴的單層邏輯:開始遞迴訪問其上下左右節點(遞迴遍歷左右子樹)
class
solution}}
return cnt;
}void
dfs(vectorchar
>>
& grid,
int r,
int c)
}int
ingrid
(vectorchar
>>
& grid,
int r,
int c)
};
當我再看第一遍的題解,我已經看不懂了:
class
solution
public
:int
numislands
(vectorchar
>>
& grid)}}
return res;}}
;
力扣 200 島嶼數量(js)
給你乙個由 1 陸地 和 0 水 組成的的二維網格,請你計算網格中島嶼的數量。島嶼總是被水包圍,並且每座島嶼只能由水平方向或豎直方向上相鄰的陸地連線形成。此外,你可以假設該網格的四條邊均被水包圍。示例 1 輸入 1 1 1 1 0 1 1 0 1 0 1 1 0 0 0 0 0 0 0 0 輸出 1...
力扣 200 島嶼的數量
傳送門 題目分析 對於只含有0和1的二維網路,題目實際上問的是二維網路中連通著的 1 的塊數 這裡的連通只能是上下左右連通 那麼,我們可以遍歷二維網路,對於陸地 由 1 構成 搜尋與其向連的 1 陸地 numisland 加一,當搜尋完一塊兒陸地 連著的 1 後,一定將他們變為 0 避免重複。基於上...
力扣Leetcode 200 島嶼數量
給你乙個由 1 陸地 和 0 水 組成的的二維網格,請你計算網格中島嶼的數量。島嶼總是被水包圍,並且每座島嶼只能由水平方向和 或豎直方向上相鄰的陸地連線形成。此外,你可以假設該網格的四條邊均被水包圍。輸入 11110 11010 11000 00000 輸出 1輸入 11000 11000 0010...