首页 > 其他分享 >695. 岛屿的最大面积

695. 岛屿的最大面积

时间:2022-10-13 23:56:06浏览次数:32  
标签:695 int 面积 岛屿 vector grid && size


class Solution {
public:
    // bfs适合距离为1的情形;
    int n,m;
    int maxAreaOfIsland(vector<vector<int>>& grid) {
        int maxArea =0;
        n=grid.size();
        m=grid[0].size();
        vector<vector<int>> vist;
        for(int i=0;i<n;i++){
            for(int j=0;j<m;j++){
                if(grid[i][j]==1 ){
                    int t=bfs(grid,i,j);
                    maxArea=max(t,maxArea);
                }
            }
        }
        return maxArea;    
    }
    int bfs(vector<vector<int>>& grid,int r,int c){
        
        queue<pair<int,int>> q;
        q.push({r,c});
        grid[r][c]=0;
        int size=1;  //当前方格也算一个
        int dx[4]={-1,0,1,0};
        int dy[4]={0,1,0,-1};
        while(q.size()){
            auto t= q.front();
            q.pop();
            for(int i=0;i<4;i++){
                int x=t.first+dx[i];
                int y=t.second+dy[i];
                if(x>=0 && x<n && y>=0 && y<m  && grid[x][y]==1 ){
                    q.push({x,y});
                    size++;
                    grid[x][y]=0;
                }
            }
        }
        return size;
    }
};





标签:695,int,面积,岛屿,vector,grid,&&,size
From: https://www.cnblogs.com/mengfengguang/p/16790144.html

相关文章