栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

力扣-200题 岛屿数量(C++)- BFS

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

力扣-200题 岛屿数量(C++)- BFS

题目链接:https://leetcode.cn/problems/number-of-islands/
题目如下:

class Solution {
public:
    int numIslands(vector>& grid) {
        //flood-fill算法,要遍历每一个格子,然后分别bfs or dfs
        int res=0;
        int m=grid.size();
        if(m==0) return res;
        int n=grid[0].size();

        vector> visited(m,vector(n,false));

        for(int i=0;i
            for(int j=0;j
                if(visited[i][j]==false&&grid[i][j]=='1'){
                    res++;
                    bfs(grid,i,j,visited,m,n);
                }
            }
        }

        return res;
    }
    void bfs(vector> g,int x,int y,vector>& visited,int m,int n){
        queue> que;
        que.push({x,y});
        visited[x][y]=true;

        while(que.size()){
            auto t=que.front();
            que.pop();

            int dx[4]={-1,0,1,0},dy[4]={0,1,0,-1};
            for(int i=0;i<4;i++){
                int a=t.first+dx[i];
                int b=t.second+dy[i];

                if(a>=0&&a=0&&b
                    que.push({a,b});
                    visited[a][b]=true;
                }
            }
        }
    }
};
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/892767.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号