class Solution {
int count = 0;
int res = 0;
public int maxAreaOfIsland(int[][] grid) {
for(int r = 0; r < grid.length; r++) {
for(int c = 0; c < grid[0].length; c++) {
if(grid[r][c] == 1) {
dfs(grid, r, c);//把某一座岛屿遍历了一次
res = Math.max(res, count);
count = 0;//在遍历下一次岛屿是要将count清0
}
}
}
return res;
}
public void dfs(int[][] 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;
count++;//说明该处是陆地 +1
dfs(grid, r + 1, c);
dfs(grid, r - 1, c);
dfs(grid, r, c + 1);
dfs(grid, r, c - 1);
}
}
算法-DFS-岛屿的最大面积
猜你喜欢
转载自blog.csdn.net/qq_45100361/article/details/113116039
今日推荐
周排行