給你乙個由 『1』(陸地)和 『0』(水)組成的的二維網格,請你計算網格中島嶼的數量。
島嶼總是被水包圍,並且每座島嶼只能由水平方向和/或豎直方向上相鄰的陸地連線形成。
此外,你可以假設該網格的四條邊均被水包圍。
示例 1:
輸入:
11110
11010
11000
00000
輸出: 1
示例 2:
輸入:
11000
11000
00100
00011
輸出: 3
解釋: 每座島嶼只能由水平和/或豎直方向上相鄰的陸地連線而成。
在深度遍歷時,每遇到乙個相連的島嶼,就將其沉底,使其不再是島嶼,這樣就避免遍歷時重複計數。
此題是計算相鄰的島嶼,要想知道島嶼是不是相鄰的,深度遍歷即可,遞迴地遍歷上下左右。
class
solution}}
return cnt;
}//將遍歷過的島嶼標記為2,標記為0也行.
//只要不是1,主函式遍歷時就不會重複計數。
public
void
change
(char
grid,
int i,
int j)
}
力扣 200 島嶼數量
給你乙個由 1 陸地 和 0 水 組成的的二維網格,請你計算網格中島嶼的數量。島嶼總是被水包圍,並且每座島嶼只能由水平方向和 或豎直方向上相鄰的陸地連線形成。此外,你可以假設該網格的四條邊均被水包圍。解題思路 dfs函式的作用 找到包含grid i j 格仔的島嶼的全部格仔,並將其全部置為 2 已訪...
力扣 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 避免重複。基於上...