class Solution {
int m, n;
boolean[][] visited;
private void dfs(char[][] grid, int x, int y) {
if (x < 0 || y < 0 || x >= m || y >= n) {
return;
}
if (visited[x][y]) {
return;
}
if (grid[x][y] == '0') {
return;
}
grid[x][y] = '0';
visited[x][y] = true;
dfs(grid, x + 1, y);
dfs(grid, x, y + 1);
dfs(grid, x - 1, y);
dfs(grid, x, y - 1);
}
public int numIslands(char[][] grid) {
m = grid.length;
n = grid[0].length;
visited = new boolean[m][n];
int result = 0;
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
if (grid[i][j] == '1') {
dfs(grid, i, j);
result++;
}
}
}
return result;
}
}
200. 岛屿数量
最新推荐文章于 2024-10-15 19:28:18 发布