本文主要是介绍力扣HOT100 - 200. 岛屿数量,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
解题思路:
岛屿题目一般使用dfs。
1.判断是否越界
2.用0,1,2三个状态标识当前格子的状态(三个状态比两个状态更清晰)
3.向周围四个方向遍历
class Solution {public int numIslands(char[][] grid) {int cnt = 0;for (int i = 0; i < grid.length; i++) {for (int j = 0; j < grid[0].length; j++) {if (grid[i][j] == '1') {dfs(grid, i, j);cnt++;}}}return cnt;}public void dfs(char[][] grid, int i, int j) {if (i < 0 || j < 0 || i >= grid.length || j >= grid[0].length || grid[i][j] == '0' || grid[i][j] == '2') return;grid[i][j] = '2';dfs(grid, i + 1, j);dfs(grid, i - 1, j);dfs(grid, i, j + 1);dfs(grid, i, j - 1);}
}
这篇关于力扣HOT100 - 200. 岛屿数量的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!