岛屿的最大面积(medium)"/>
[dfs]leetcode695:岛屿的最大面积(medium)
题目:
题解:
- dfs
- 把200. 岛屿数量、1254. 统计封闭岛屿的数目这两个题目好好做做,你就会发现同样的套路了。
代码如下:
class Solution {
public:int maxAreaOfIsland(vector<vector<int>>& grid) {int res=0;int m=grid.size(),n=grid[0].size();for(int i=0;i<m;++i){for(int j=0;j<n;++j){if(grid[i][j]==1){int val=0;dfs(grid,i,j,val,m,n);res=max(res,val);}}}return res;}void dfs(vector<vector<int>>& grid,int i,int j,int& val,int m,int n){if(!grid[i][j])return;//将已记录的岛屿1改为水0,直到图中没有相邻的岛屿时一个dfs退出,表示一块岛屿面积已经计算得出//最后直到岛屿的1全部变为水0时,所有dfs退出,表示我们已经得到最大岛屿数了grid[i][j]=0;val++;if(i-1>=0)dfs(grid,i-1,j,val,m,n);if(i+1<m)dfs(grid,i+1,j,val,m,n);if(j-1>=0)dfs(grid,i,j-1,val,m,n);if(j+1<n)dfs(grid,i,j+1,val,m,n);}
};
更多推荐
[dfs]leetcode695:岛屿的最大面积(medium)
发布评论