解题思路:
class Solution {
public int numIslands(char[][] grid) {
int count = 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);
count++;
}
}
}
return count;
}
public void dfs(char[][] grid, int i, int j){
if(i < 0 || i >= grid.length || j < 0 || j >= grid[0].length || grid[i][j] == '0'){
return;
}
grid[i][j] = '0';
dfs(grid, i - 1, j);
dfs(grid, i + 1, j);
dfs(grid, i, j - 1);
dfs(grid, i, j + 1);
}
}
本文介绍了一种使用深度优先搜索(DFS)解决字符矩阵中岛屿问题的方法,通过K神的代码实例,讲解如何在给定的二维格子中计算岛屿的数量。重点在于理解DFS的应用和岛屿定义在编程中的实现。



487

被折叠的 条评论
为什么被折叠?



