2023-04-09 03:00阅读: 18评论: 0推荐: 0

力扣-695-岛屿的最大面积

/*
* 思路是这样:
* 遍历每一个单位点,如果遇到陆地就开始dfs并计岛屿面积:将与这个陆地相连的所有陆地标记为0
* 最后返回面积的最大值
*/
private:
int maxSize = 0,count = 0;
public:
void dfs(vector<vector<int>>& grid, int i, int j, int m, int n) {
if (i < 0 || i >= m || j < 0 || j >= n)return;
if (grid[i][j] == 0) return;
// 剩下就只有是1的情况
grid[i][j] = 0;
count++;
dfs(grid, i - 1, j, m, n);
dfs(grid, i + 1, j, m, n);
dfs(grid, i, j - 1, m, n);
dfs(grid, i, j + 1, m, n);
}
int maxAreaOfIsland(vector<vector<int>>& grid) {
int m = grid.size();
int n = grid[0].size();
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
// 遍历每一个位置,如果是陆地就开始DFS标记
if (grid[i][j] == 1) {
count = 0;
dfs(grid, i, j, m, n);
maxSize = max(maxSize, count);
}
}
}
return maxSize;
}

本文作者:YaosGHC

本文链接:https://www.cnblogs.com/yaocy/p/17299752.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   YaosGHC  阅读(18)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起