島嶼數量 力扣第200題

2022-06-16 11:42:10 字數 1073 閱讀 1118

題目:

給你乙個由 '1'(陸地)和 '0'(水)組成的的二維網格,請你計算網格中島嶼的數量。

島嶼總是被水包圍,並且每座島嶼只能由水平方向或豎直方向上相鄰的陸地連線形成。

此外,你可以假設該網格的四條邊均被水包圍。

示例:

輸入:

11110

11010

11000

00000輸出: 1

分析:

這個題和之前那個求最大島嶼面積的做法是一樣的,只不過求的是所有島嶼的數量。其實就是求給的二維網格圖中,連通分量的總數,那麼我們就依次遍歷二維陣列中的每乙個點,凡是值為1且未被訪問過的點,都進行依次深度優先遍歷,求出這個點對應的連通分量,然後將這個分量中的點都設定為已被訪問,然後島嶼數量加一,繼續進行遍歷。直到所有的點都遍歷完全,最後就可以求出總的島嶼數量。

**:

public

int numislands(char

grid)

int row =grid.length;

int col = grid[0].length;

boolean isvisited = new

boolean

[row][col];

int island = 0;

for (int i = 0; i < row; i++) }}

}return

island;

}private

int dirs = ,,,};

private

int findland(char grid,int r,int c,boolean

isvisited)

isvisited[r][c] = true

;

int island = 1;

for (int

dir : dirs)

return

island;

}

leetcode 第200題 島嶼數量

題目 給定乙個由 1 陸地 和 0 水 組成的的二維網格,計算島嶼的數量。乙個島被水包圍,並且它是通過水平方向或垂直方向上相鄰的陸地連線而成的。你可以假設網格的四個邊均被水包圍。示例 1 輸入 11110 11010 11000 00000 輸出 1 示例 2 輸入 11000 11000 0010...

力扣 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...