class Solution {
public int numIslands(char[][] grid) {
if (grid == null || grid.length == 0 || grid[0].length == 0)
return 0;
int r = grid.length;
int c = grid[0].length;
int res = 0;
for (int i = 0; i < r; i++) {
for (int j = 0; j < c; j++) {
if (grid[i][j] == '1') {
dfs(grid, i, j);
res++;
}
}
}
return res;
}
private void dfs(char[][] grid, int r, int c) {
int rowNum = grid.length;
int colNum = grid[0].length;
if (r < 0 || r >= rowNum || c < 0 || c >= colNum || grid[r][c] == '0') {
return;
}
grid[r][c] = '0';
dfs(grid, r + 1, c);
dfs(grid, r - 1, c);
dfs(grid, r, c + 1);
dfs(grid, r, c - 1);
}
}
For further actions, you may consider blocking this person and/or reporting abuse
Top comments (0)