编程语言
首页 > 编程语言> > 算法-岛屿问题-DFS和BFS

算法-岛屿问题-DFS和BFS

作者:互联网

  1. 岛屿问题解决方案
    1. dfs
      void dfs(int[][] grid, int r, int c) {
          // 判断 base case,是否在界内
          if (!inArea(grid, r, c)) {
              return;
          }
          // 如果这个格子不是岛屿,直接返回
          if (grid[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);
      }
      
      // 判断坐标 (r, c) 是否在网格中
      boolean inArea(int[][] grid, int r, int c) {
          return 0 <= r && r < grid.length 
              	&& 0 <= c && c < grid[0].length;
      }
      

        

标签:inArea,return,int,岛屿,dfs,BFS,算法,grid,DFS
来源: https://www.cnblogs.com/nlyide/p/16221342.html