class Solution {
public int[][] direction={{0,1},{0,-1},{1,0},{-1,0}};
public int numIslands(char[][] grid) {
int res=0;
for(int i=0;i<grid.length;i++){
for(int j=0;j<grid[0].length;j++){
if(grid[i][j]=='1'){
res+=1;
dfs(grid,i,j);
}
}
}
return res;
}
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';
for(int[] d:direction){
dfs(grid,i+d[0],j+d[1]);
}
}
}