当前位置:网站首页>Leetcode 200.岛屿数量 BFS
Leetcode 200.岛屿数量 BFS
2022-08-10 19:06:00 【Alkali!】
题目描述
岛屿数量
给你一个由 '1'(陆地)和 '0'(水)组成的的二维网格,请你计算网格中岛屿的数量。
岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。
此外,你可以假设该网格的四条边均被水包围。
思路
直接BFS求就完事了
代码
class Solution {
public:
int numIslands(vector<vector<char>>& grid) {
vector<vector<bool>> st(grid.size()); //标记数组
for(int i=0;i<grid.size();i++)
st[i].resize(grid[0].size());
for(int i=0;i<grid.size();i++) //初始化为未访问
for(int j=0;j<grid[0].size();j++)
st[i][j]=false;
int res=0; //岛屿数量
for(int i=0;i<grid.size();i++)
for(int j=0;j<grid[0].size();j++)
{
if(grid[i][j]=='1')
{
if(st[i][j]) continue;
else
{
res++;
bfs(st,i,j,grid); //bfs
}
}
}
return res;
}
void bfs(vector<vector<bool>>& st,int x,int y,vector<vector<char>>& gap)
{
int n=gap.size(),m=gap[0].size();
queue<pair<int,int>> q;
q.push({
x,y});
st[x][y]=true;
int dx[4]={
-1,0,1,0},dy[4]={
0,1,0,-1};
while(!q.empty())
{
auto t=q.front();
q.pop();
for(int i=0;i<4;i++)
{
int nx=t.first+dx[i],ny=t.second+dy[i];
if(nx<0||nx>=n||ny<0||ny>=m) continue; //出界
if(gap[nx][ny]=='0') continue; //没出界,但是0
if(st[nx][ny]) continue; //是1,但访问过了
q.push({
nx,ny});
st[nx][ny]=true;
}
}
}
};
边栏推荐
- 365天挑战LeetCode1000题——Day 053 求解方程 解析 模拟
- Tf铁蛋白颗粒包载顺铂/奥沙利铂/阿霉素/甲氨蝶呤MTX/紫杉醇PTX等药物
- 【深度学习前沿应用】图像风格迁移
- 魔方电池如何“躺赢”?解锁荣威iMAX8 EV“头等舱”安全密码
- 2022 Hangdian Multi-School Seven Black Magic (Sign-in)
- IIC通信协议总结[通俗易懂]
- 【无标题】基于Huffman和LZ77的GZIP压缩
- spark学习笔记(九)——sparkSQL核心编程-DataFrame/DataSet/DF、DS、RDD三者之间的转换关系
- 3D Game Modeling Learning Route
- 基于TCP的聊天系统
猜你喜欢

电脑开不了机是什么原因?

servlet映射路径匹配解析

QoS服务质量八拥塞避免

工业基础类—利用xBIM提取IFC几何数据
We used 48h to co-create a web game: Dice Crush, to participate in international competitions

弘玑Cyclone与风变科技达成战略合作:优势互补聚焦数字化人才培养

云渲染的应用正在扩大,越来越多的行业需要可视化服务

FPGA:生成固化文件(将代码固化到板子上面)

子域名收集&Google搜索引擎语法

ARouter使用自定义注解处理器,自动生成跳转Activity的代码,避免手动填写和管理path
随机推荐
烟雾、空气质量、温湿度…自己徒手做个环境检测设备
皮质-皮质网络的多尺度交流
Modern Privacy-Preserving Record Linkage Techniques: An Overview论文总结
servlet映射路径匹配解析
转铁蛋白(TF)修饰紫杉醇(PTX)脂质体(TF-PTX-LP)|转铁蛋白(Tf)修饰姜黄素脂质体
电脑如何去掉u盘写保护的状态
陕西CAS:1244028-50-9_Biotin-PEG3-SCO-PPh3 固体
laya打包发布apk
905. 区间选点(贪心)
“2022零信任神兽方阵”启动调研,欢迎各单位填报信息
whois信息收集&企业备案信息
ARouter使用自定义注解处理器,自动生成跳转Activity的代码,避免手动填写和管理path
转铁蛋白Tf功能化β-榄香烯-雷公藤红素/紫杉醇PLGA纳米粒/雷公藤甲素脂质体(化学试剂)
Keras deep learning combat (17) - image segmentation using U-Net architecture
【SemiDrive源码分析】【MailBox核间通信】52 - DCF Notify 实现原理分析 及 代码实战
手把手教你Charles抓包工具使用
服务器上行带宽和下行带宽指的是什么
FPGA:生成固化文件(将代码固化到板子上面)
2022 Hangdian Multi-School Seven Black Magic (Sign-in)
pytorch使用Dataloader加载自己的数据集train_X和train_Y