[200] 岛屿数量

83 阅读1分钟
/*
 * @lc app=leetcode.cn id=200 lang=javascript
 *
 * [200] 岛屿数量
 */

// @lc code=start
/**
 * @param {character[][]} grid
 * @return {number}
 * bfs 广度优先搜索
 * dfs 深度优先搜索
 */
var numIslands = function (grid) {
  let count = 0
  function dfs(row,col){
    // 判断边界值或者当前值是不是等于0
    if(row<0||row>=grid.length||col<0||col>=grid[0].length||grid[row][col]==='0'){
      return 
    }
    // 如果不是上面的条件就沉没岛屿
    grid[row][col]='0'
    // 上下左右继续递归
    dfs(row-1,col)
    dfs(row+1,col)
    dfs(row,col-1)
    dfs(row,col+1)
  }
  for (let row = 0; row < grid.length; row++) {
    for (let col = 0; col < grid[0].length; col++) {
      if(grid[row][col]==='1'){
        count++
        dfs(row,col)
      }
    }
  }
  return count
}
// @lc code=end