200. 岛屿数量
题目:


题解:
java
class Solution {
int l,r;
boolean[][] flag;
int sum = 0;
public int numIslands(char[][] grid) {
l = grid.length;
r = grid[0].length;
flag = new boolean[l][r];
for(int i=0;i<l;i++) {
for(int j=0;j<r;j++) {
if(grid[i][j] == '1' && !flag[i][j]) {
dfs(grid,i,j);
sum++;
}
}
}
return sum;
}
public void dfs(char[][] grid, int x, int y) {
if(x<0 || y<0 || x >= l || y >= r || grid[x][y] == '0' || flag[x][y] == true) {
return;
}
flag[x][y] = true;
dfs(grid,x+1,y);
dfs(grid,x,y+1);
dfs(grid,x-1,y);
dfs(grid,x,y-1);
}
}