目录
题目


深度优先搜索
遍历二维数组,遇到"陆地"就用dfs标记或者"沉岛",并记录下岛屿个数即可。
js
/**
* @param {character[][]} grid
* @return {number}
*/
var numIslands = function(grid) {
const m = grid.length, n = grid[0].length;
function dfs(x, y) {
// 如果越界或不是陆地就结束
if (x < 0 || x >= m || y < 0 || y >= n || grid[x][y] !== '1') {
return;
}
grid[x][y] = '0';
dfs(x, y - 1); // 左
dfs(x, y + 1); // 右
dfs(x - 1, y); // 上
dfs(x + 1, y); // 下
}
let res = 0;
for (let i = 0; i < m; i++) {
for (let j = 0; j < n; j++) {
if (grid[i][j] === '1') {
dfs(i, j);
res++;
}
}
}
return res;
};