力扣 200島嶼數量 (深度優先遍歷 沉島思想)

2021-10-05 06:12:12 字數 749 閱讀 4804

給你乙個由 『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 避免重複。基於上...