题目描述
题解
/**
* @param {character[][]} grid
* @return {number}
*/
var numIslands = function(grid) {
// 深度优先搜索思路,遍历grid中的每一个数据,且对数据进行上下左右深度优先搜索,搜索时将遍历过的数据置为0,最终的结果是深度优先搜索的次数
let res = 0
let col = grid.length;
let row = grid[0].length;
const dfs = function(grid,i,j,col,row){
if(i >= col || j >= row || i < 0 || j < 0 || grid[i][j] === '0'){ // 递归结束条件 坐标跑出边界 或者 遇到水
return
}
grid[i][j] = '0' // 遍历过的置为'o'
dfs(grid,i + 1,j,col,row)
dfs(grid,i - 1,j,col,row)
dfs(grid,i,j + 1,col,row)
dfs(grid,i,j - 1,col,row)
}
// 遍历每一个网格数据
for(let i = 0;i < col;i++){
for(let j = 0;j < row;j++){
if(grid[i][j] === '1'){
res += 1
dfs(grid,i,j,col,row)
}
}
}
return res
};