岛屿数量

深度优先遍历,找到陆地+1,并把他相邻的所有陆地改为海

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
/**
* @param {character[][]} grid
* @return {number}
*/
var numIslands = function (grid) {
if (!grid || grid.length === 0) return 0;
const row = grid.length,
col = grid[0].length;
let islandCount = 0;
function dfs(r, c) {
if (r < 0 || c < 0 || r >= row || c >= col || grid[r][c] === "0") {
return;
}
grid[r][c] = "0";
dfs(r - 1, c);
dfs(r + 1, c);
dfs(r, c - 1);
dfs(r, c + 1);
}
for (let r = 0; r < row; r++) {
for (let c = 0; c < col; c++) {
if (grid[r][c] === "1") {
islandCount++;
dfs(r, c);
}
}
}
return islandCount;
};

本站由 ao 使用 Stellar 1.29.1 主题创建。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。