1. 题目
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/27d70a5d052a074ac0ba44a708824817.png)
2. 思路
(1) DFS
- 每发现一块陆地,对其进行深度优先搜索,将与其相连的’1’全部修改成’0’。
3. 代码
public class Test {
public static void main(String[] args) {
}
}
class Solution {
public int solve(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') {
dfs(grid, i, j);
res++;
}
}
}
return res;
}
public void dfs(char[][] grid, int i, int j) {
grid[i][j] = '0';
if (i > 0 && grid[i - 1][j] == '1') {
dfs(grid, i - 1, j);
}
if (i < grid.length - 1 && grid[i + 1][j] == '1') {
dfs(grid, i + 1, j);
}
if (j > 0 && grid[i][j - 1] == '1') {
dfs(grid, i, j - 1);
}
if (j < grid[0].length - 1 && grid[i][j + 1] == '1') {
dfs(grid, i, j + 1);
}
}
}