题目描述:
思路:深度优先算法+置0
class Solution {
void dfs(char[][] grid,int m,int n){
int m1=grid.length;
int n1=grid[0].length;
if(m<0||n<0||m>=m1||n>=n1||grid[m][n]=='0'){
return;
}
grid[m][n]='0';
dfs(grid,m-1,n);
dfs(grid,m+1,n);
dfs(grid,m,n-1);
dfs(grid,m,n+1);
}
public int numIslands(char[][] grid) {
if(grid==null||grid.length==0){
return 0;
}else {
int m=grid.length;
int n=grid[0].length;
int isIsland=0;
for (int i = 0; i <m; i++) {
for (int j = 0; j <n; j++) {
if(grid[i][j]=='1'){
isIsland++;
dfs(grid,i,j);
}
}
}
return isIsland;
}
}
}