当前位置:网站首页>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;
}
}
}
};
边栏推荐
- servlet映射路径匹配解析
- ARouter使用自定义注解处理器,自动生成跳转Activity的代码,避免手动填写和管理path
- 小分子PEG CAS:1352814-07-3生物素-PEG6-丙酸叔丁酯
- LeetCode·283.移除零·双指针
- [教你做小游戏] 只用几行原生JS,写一个函数,播放音效、播放BGM、切换BGM
- 『牛客|每日一题』岛屿数量
- 「POJ 3666」Making the Grade 题解(两种做法)
- Colocate Join :ClickHouse的一种高性能分布式join查询模型
- FEMRL: A Framework for Large-Scale Privacy-Preserving Linkage of Patients’ Electronic Health Rec Paper Summary
- QoS Quality of Service Eight Congestion Avoidance
猜你喜欢

【毕业设计】基于Stm32的智能疫情防控门禁系统 - 单片机 嵌入式 物联网

Metasploit——渗透攻击模块(Exploit)

3D Game Modeling Learning Route

网站架构探测&chrome插件用于信息收集
[email protected] NPs纳米酶|碳纳米管负载铂颗粒纳米酶|白血病拮抗多肽修饰的FeOPtPEG复合纳米酶"/>Pt/CeO2单原子纳米酶|[email protected] NPs纳米酶|碳纳米管负载铂颗粒纳米酶|白血病拮抗多肽修饰的FeOPtPEG复合纳米酶

铁蛋白颗粒负载雷替曲塞/培美曲塞/磺胺地索辛/金刚烷(科研试剂)

『牛客|每日一题』岛屿数量

【毕业设计】基于STM32的天气预报盒子 - 嵌入式 单片机 物联网
![[Natural Language Processing] [Vector Representation] PairSupCon: Pairwise Supervised Contrastive Learning for Sentence Representation](/img/e3/a1adb56678e9d26e09ff30be781e2a.png)
[Natural Language Processing] [Vector Representation] PairSupCon: Pairwise Supervised Contrastive Learning for Sentence Representation

优化是一种习惯●出发点是'站在靠近临界'的地方
随机推荐
产品思维训练 | 新用户从注册到绑卡流失率很高是什么原因?
转铁蛋白修饰长春新碱-粉防己碱脂质体|转铁蛋白修饰共载紫杉醇和金雀异黄素脂质体(试剂)
优化是一种习惯●出发点是'站在靠近临界'的地方
[教你做小游戏] 斗地主的手牌,如何布局?看25万粉游戏区UP主怎么说
800. 数组元素的目标和(双指针)
FEMRL: A Framework for Large-Scale Privacy-Preserving Linkage of Patients’ Electronic Health Rec Paper Summary
水溶性合金量子点纳米酶|CuMoS纳米酶|多孔硅基Pt(Au)纳米酶|[email protected]纳米模拟酶|PtCo合金纳米粒子
flask装饰器版登录、session
Modern Privacy-Preserving Record Linkage Techniques: An Overview论文总结
uni-app 数据上拉加载更多功能
【无标题】基于Huffman和LZ77的GZIP压缩
keepalived:故障检测自动修复脚本
转铁蛋白(TF)修饰紫杉醇(PTX)脂质体(TF-PTX-LP)|转铁蛋白(Tf)修饰姜黄素脂质体
Colocate Join :ClickHouse的一种高性能分布式join查询模型
LeetCode·26.删除有序数组中的重复项·双指针
dumpsys meminfo 详解
【SemiDrive源码分析】【MailBox核间通信】52 - DCF Notify 实现原理分析 及 代码实战
机器学习|模型评估——AUC
L2-035 完全二叉树的层序遍历
力扣150-逆波兰表达式求值——栈实现