695. 岛屿的最大面积

cpp 复制代码
class Solution {
public:
    int dir[4][2]={1,0,0,1,-1,0,0,-1};
    int ans=0;
    void bfs(vector<vector<bool> >&flag,int x,int y,vector<vector<int>>& grid){
        queue<pair<int,int> >q;
        q.push({x,y});
        flag[x][y]=true;
        int cnt=0;
        cnt++;
        while(!q.empty()){
            pair<int,int>p=q.front();
            q.pop();
            int nx=p.first;
            int ny=p.second;
            for(int i=0;i<4;i++){
                int xx=nx+dir[i][0];
                int yy=ny+dir[i][1];
                if(xx<0||yy<0||xx>=grid.size()||yy>=grid[0].size())continue;
                if(flag[xx][yy]==false&&grid[xx][yy]==1){
                    q.push({xx,yy});
                    flag[xx][yy]=true;
                    cnt++;
                }
            }
        }
        if(cnt>ans)ans=cnt;
    }
    int maxAreaOfIsland(vector<vector<int>>& grid) {
        int n=grid.size();
        int m=grid[0].size();
        vector<vector<bool> >flag=vector<vector<bool> >(n,vector<bool>(m,false));
        for(int i=0;i<n;i++){
            for(int j=0;j<m;j++){
                if(grid[i][j]==1&&flag[i][j]==false){
                    bfs(flag,i,j,grid);
                }
            }
        }
        return ans;
    }
};
相关推荐
lvwangshu14 分钟前
exBSGS 算法
数学·算法
不会就选b15 分钟前
算法日常・每日刷题--<贪心+大根堆>2
数据结构·算法
码艺-Alimjan17 分钟前
维吾尔语数字转文本
java·javascript·python·算法·go
AI服务老曹20 分钟前
算法任务配置完整流程:明厨亮灶项目从0到1怎么做 | AI视频分析算法实践
人工智能·算法·音视频
事圆则缓24 分钟前
Java 常见数据结构与 Android 使用场景
android·java·数据结构
hahaha601630 分钟前
HLS高层次综合设计--axi之burst纠偏
开发语言·算法·fpga开发·c#
hans汉斯35 分钟前
【计算机科学与应用】基于联合熵驱动改进麻雀搜索优化VMD的DAS信号去噪方法
深度学习·算法·yolo·软件工程·汉斯出版社
词却38 分钟前
机器学习入门:手写数字识别与算法对比
人工智能·算法·机器学习
张欣-男1 小时前
3分钟理解线性代数
线性代数·算法
白狐_7981 小时前
408 数据结构|外部排序优化:怎么减少时间开销
数据结构·算法