一道最简单最经典的岛屿题目
根据岛屿题目的基础框架即可解决
DFS方法的作用就是淹没陆地
步骤:
对整个二维数组进行遍历,对遇到的陆地执行DFS,将其以及周围联通的岛屿都淹没,即为保留唯一的一块岛屿res++
class Solution {
public int numIslands(char[][] grid) {
int res = 0;
int m = grid.length;
int n = grid[0].length;
for(int i = 0;i<m;i++){
for(int j = 0;j<n;j++){
if(grid[i][j] == '1'){
res++;
dfs(grid,i,j);
}
}
}
return res;
}
void dfs(char[][] grid,int i,int j){
int m = grid.length;
int n = grid[0].length;
if(i<0||j<0||i>=m||j>=n){
return;
}
if(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);
}
}