代码:
class Solution {
static int[][] dirs = {{-1,0},{1,0},{0,-1},{0,1}};
public int numIslands(char[][] grid) {
int num=0;
for(int i=0;i<grid.length;i++){
for(int j=0;j<grid[0].length;j++){
if(grid[i][j]=='1'){
num++;
int[] start = {i,j};
getIsland(start,grid);
}
}
}
return num;
}
public void getIsland(int[] start,char[][] grid){
for(int i=0;i<dirs.length;i++){
int x = start[0]+dirs[i][0];
int y = start[1]+dirs[i][1];
if(x>=0&&x<grid.length&&y>=0&&y<grid[0].length&&grid[x][y]=='1'){
grid[x][y] = '0';
int[] cur = {x,y};
getIsland(cur,grid);
}
}
}
}