题目:
分析:
遍历一遍数组,在查询到一个‘1’时,就优先遍历一遍他们所有上下左右是‘1’的地方并改变值。
代码:
class Solution {
public int numIslands(char[][] grid) {
int sum=0;
for(int i=0;i<grid.length;i++){
for(int j=0;j<grid[0].length;j++){
if(grid[i][j]=='1'){
dy(i,j,grid);
sum++;
}
}
}
return sum;
}
public void dy(int x,int y,char[][] grid){
if(x>=0&&x<grid.length&&y>=0&&y<grid[0].length&&grid[x][y]=='1'){
grid[x][y]='2';
dy(x+1,y,grid);
dy(x-1,y,grid);
dy(x,y+1,grid);
dy(x,y-1,grid);
}
}
}