classSolution{
publicintnumIslands(char[][] grid){
int ans =0;for(int r =0; r < grid.length; r++){
for(int c =0; c < grid[0].length; c++){
if(grid[r][c]=='1'){
ans++;dfs(grid, r, c);}}}return ans;}publicvoiddfs(char[][] grid,int r,int c){
if(!(0<= r && r < grid.length &&0<= c && c < grid[0].length)){
return;}if(grid[r][c]=='0'){
return;}if(grid[r][c]=='2'){
return;}
grid[r][c]='2';dfs(grid, r +1, c);dfs(grid, r -1, c);dfs(grid, r, c +1);dfs(grid, r, c -1);}}