算法-岛屿问题-DFS和BFS
作者:互联网
- 岛屿问题解决方案
- 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; }
- dfs
标签:inArea,return,int,岛屿,dfs,BFS,算法,grid,DFS 来源: https://www.cnblogs.com/nlyide/p/16221342.html