美文网首页
深度优先搜索系列四-LeetCode 695 岛屿面积

深度优先搜索系列四-LeetCode 695 岛屿面积

作者: 徐慵仙 | 来源:发表于2020-01-20 22:48 被阅读0次

题目

https://leetcode-cn.com/problems/max-area-of-island

岛屿面积

简析

这个题和深度优先搜索系列一岛屿数量(点我),也是迷宫类问题,复制那个代码略作修改就完事了。

  • 岛屿数量是每有一片岛屿,count数+1;本题是对于遍历每一片岛屿,记录下这片岛屿个数。
  • 增加一个max变量,如果本次count数大于max,max=count即可。

代码

class Solution {
public:
    int mv[4][4]={{1,0},{-1,0},{0,1},{0,-1}};
    int max=0;
    int count;
    int maxAreaOfIsland(vector<vector<int>>& grid) {
        for(int i=0;i<grid.size();i++)
            for(int j=0;j<grid[i].size();j++){
                if(grid[i][j]==1){
                    grid[i][j]=2;
                    count=1;//每找到一片新岛屿,count重置为1,然后search看这片岛屿有多大
                    search(grid,i,j);
                    if(count>max) max=count;
                }
            }
        return max;
    }
    void search(vector<vector<int>>& grid,int x,int y){
        for(int i=0;i<4;i++){
            int xx=x+mv[i][0];
            int yy=y+mv[i][1];
            if(xx>=0&&xx<grid.size()&&yy>=0&&yy<grid[xx].size()&&grid[xx][yy]==1){
                grid[xx][yy]=2;
                count++;
                search(grid,xx,yy);
            }
        }
    }
};

相关文章

网友评论

      本文标题:深度优先搜索系列四-LeetCode 695 岛屿面积

      本文链接:https://www.haomeiwen.com/subject/hheszctx.html