var numIslands = function(grid) {
let landNum = 0;
for(let i = 0; i < grid.length; i++){
for(let j = 0; j < grid[0].length; j++){
if(grid[i][j] == 1){
landNum++;
dfs(grid, i, j);
}
}
}
return landNum;
};
const inArea(grid, r, c){//判断是否在矩阵区域内
//注意这里,与循环中的i 和 j相对应
return r >=0 && r < grid.length && c >=0 && c <grid[0].length;
};
const dfs = (grid, r, c) => {
if(!inArea(grid, r, c)) return;
if(gird[r][c] != 1) return;//判断是否为岛屿
grid[r][c] = 2;//标记已经到达过的岛屿避免后续重复死循环
//进行递归遍历
dfs(grid, r-1, c);
dfs(grid, r+1, c);
dfs(grid, r, c-1);
dfs(grid, r, c+1);
}
200.岛屿数量
最新推荐文章于 2024-05-11 14:30:05 发布