BFS解决FloodFill算法:(Leetcode:200. 岛屿数量)

题目链接:200. 岛屿数量 - 力扣(LeetCode) 

本题由于没有给出开始搜索的位置,所以每一个位置都要进行一次广度优先搜索 

另外为了不修改原数组数据,需要设置一个bool类型的二维数组vis来判断某个位置是否被搜索过

class Solution {int dx[4]={1,-1,0,0};int dy[4]={0,0,1,-1};typedef pair<int,int> PII;int m=0,n=0;vector<vector<bool>> vis;//指示数组,指示某个位置是否被搜索过
public:int numIslands(vector<vector<char>>& grid) {int ret=0;//岛屿数量m=grid.size();n=grid[0].size();vis.resize(m);//初始化指示数组for(int i=0;i<m;++i)//初始化指示数组{vis[i].resize(n);for(int j=0;j<n;++j) vis[i][j]=false;}//每个位置都要进行一次广度优先搜索for(int i=0;i<m;++i){for(int j=0;j<n;++j){if(grid[i][j]=='1'&&!vis[i][j]){++ret;//广度优先搜索bfs(grid,i,j);}}}return ret;} //广度优先搜索void bfs(vector<vector<char>>& grid,int i,int j){queue<PII> q;q.push({i,j});vis[i][j]=true;while(q.size()){int a=q.front().first;int b=q.front().second;q.pop();for(int k=0;k<4;++k){int x=a+dx[k];int y=b+dy[k];if(x>=0&&x<m&&y>=0&&y<n&&grid[x][y]=='1'&&!vis[x][y]){q.push({x,y});vis[x][y]=true;}}          }} 
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/1751.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Numpy方法总结(二)

一. 高级索引 相比于基本索引&#xff0c;高级索引可以访问到数组中的任意元素&#xff0c;并且可以用来对数组进行复杂的操作和修改。 1.整数数组索引 整数数组索引是指使用一个数组来访问另一个数组的元素。这个数组中的每个元素都是目标数组中某个维度上的索引值。 示例…

MapReduce——ReudceTask并行度决定机制

MapReduce——ReudceTask并行度决定机制 1. Reduce任务的数量&#xff08;reduce task count&#xff09;&#xff1a; 这是最基本的决定因素之一。在作业启动时&#xff0c;用户可以指定Reduce任务的数量。更多的Reduce任务意味着更多的并行度&#xff0c;因为每个Reduce任务…

图像哈希:QDCT篇

这个领域的背景 相关性质 FQDCT和IQDCT的相关公式&#xff0c;公式来自于论文&#xff08;Partial Encryption of Color Image Using Quaternion Discrete Cosine Transform&#xff09;&#xff1a; F Q D C T q ( p , s ) α ( p ) α ( s ) ∑ x 0 X − 1 ∑ y 0 Y μ…

150G全国1米分辨率土地利用数据【2023年】

#1数据摘要 全国1米分辨率土地利用数据 全国范围,分省份分类,1米精度土地利用数据。2023年版本。 数据格式:tif 坐标系:wgs1984 范围:全国各省份 时间:2023年 精度:1米 地类:共计11个地类 中国1m分辨率土地覆盖数据 文件命名与介绍:数据为GeoTIFF栅格格式,每个城市…

Excel 公式的定义、语法和应用(LOOKUP 函数、HLOOKUP 函数、VLOOKUP 函数;MODE.MULT 函数; ROUND 函数)

一、公式的定义和语法 二、公式的应用 附录 查找Excel公式使用方法的官方工具【强烈推荐!!!】:Excel 函数(按字母顺序)【微软官网】 excel 函数说明语法LOOKUP 函数在向量或数组中查找值LOOKUP(lookup_value, lookup_vector, [result_vector])

Python学习之旅高级篇:Web开发之旅(一)—— Flask和Django框架概览

在Python高级篇的Web开发之旅中&#xff0c;我们将深入探索如何使用Python构建动态网站和Web应用程序。本系列的首先&#xff0c;我们将从Web框架的基础知识开始&#xff0c;逐步过渡到Flask和Django这两个流行的Python Web框架的详细介绍。 Web框架简介 Web框架的作用和重要…

shell--while循环

1.基本语法 while [ 条件表达式 ] do语句语句 done 示例&#xff1a;循环输出 1~10这几个数 [rootopenEuler ~]# cat while1.sh #!/bin/bashi1 while [ $i -le 10 ] doecho $ilet i done 示例&#xff1a;使用 exec 读取指定文件的内容并循环输出。 # 第一步创建文件及内…

ADOP带您了解CWDM模块和DWDM模块

CWDM&#xff08;Coarse Wavelength Division Multiplexing&#xff0c;粗波分复用&#xff09;和DWDM&#xff08;Dense Wavelength Division Multiplexing&#xff0c;密集波分复用&#xff09;是两种常见的光模块技术&#xff0c;用于在光纤中同时传输多个信号。让我们来看看…

Webfunny前端监控如何接入飞书单点登录(SSO)

Hello&#xff0c;大家好&#xff0c;欢迎使用**webfunny前端监控和埋点平台**。今天我们将介绍一下如何接入飞书的登录系统。 友情提示&#xff1a;如果飞书侧已经配置好了&#xff0c;可以直接跳到第六步阅读。 一、创建飞书网页项目 进入飞书开发者后台&#xff0c;创建企…

大话设计模式-装饰器模式

大话设计模式书中&#xff0c;作者举了一个穿衣服的例子来为我们引入装饰器模式。 概念 定义 装饰模式在书中的定义是&#xff1a;动态地给一个对象添加一些额外的职责&#xff0c;就增加功能来说&#xff0c;装饰模式比生成子类更灵活。 这句话直接去理解可能会有点抽象&#…

7个因素影响小红书账号权重

1、原创 小红薯对原创内容给予了较高的权重和推荐度。如果笔记的原创度低于60%&#xff0c;平台会对其权重大幅降低&#xff0c;这意味着笔记可能会被限流&#xff0c;即在用户的推荐流中很少出现。 2、转化率 当你发布一篇笔记后&#xff0c;平台会根据标签将其推送给一小部分…

如何进行JVM的调优

进行Java虚拟机&#xff08;JVM&#xff09;的调优是一项关键的工作&#xff0c;旨在优化JVM的性能&#xff0c;提高应用程序的响应速度和吞吐量&#xff0c;并确保系统的稳定运行。JVM调优通常涉及到调整堆大小、选择合适的垃圾收集器、监控运行时性能以及分析内存泄漏等方面。…

探索Java设计模式:状态模式

深入理解与实践Java设计模式之状态模式 一、简要介绍 状态模式&#xff08;State Pattern&#xff09;是一种行为型设计模式&#xff0c;它允许对象在其内部状态改变时改变其行为。状态模式通过引入状态类来封装与状态相关的行为&#xff0c;并使上下文对象&#xff08;即拥有…

华为校招机试 - 扑克牌消除(20240417)

题目描述 从一副扑克牌中随机抽取 n 张牌组成一个序列,规定连续 3 张相同牌号的卡牌可以消除,剩余卡牌按照当前顺序重新合并成新的序列后继续消除,重复以上步骤直到无法消除,最后请输出结束后剩余的卡牌序列。 注:存在连续 4 张相同牌号的情况,消除后剩余一张。 输入描…

数据结构-KMP算法

KMP算法 简单的模式匹配算法 定义:子串的定位操作通常称为串的模式匹配,他求的是子串在主串中的位置过程 逐个字符比较 从主串指针 i 对应的字符和模式串指针 j 对应的字符开始&#xff0c;依次比较它们是否相等。若相等&#xff0c;则同时移动 i 和 j 向右一位&#xff0c;继续…

C语言本身不难,难得是应用场景很多

你学了C语言多半是要做项目的&#xff0c;这个过程中C语言是远远不够的&#xff0c;你把这部分难度加到C语言上&#xff0c;自然就难了在开始前我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「C语言的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区…

【python】如何通过python来发送短信

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

MySQL-多表设计

黑马程序员JavaWeb开发教程 文章目录 一、一对多&#xff08;多对一&#xff09;二、一对一三、多对多 项目开发中&#xff0c;在进行数据库表结构设计时&#xff0c;会根据业务需求及业务模块之间的关系&#xff0c;分析并设计表结构&#xff0c;由于业务之间相互关联&#xf…

【日志】CSDN-AI助手升级日志

CSDN-AI助手升级日志 2023/04/05上线 支持点赞、收藏回访 关注回访&#xff08;对方至少有一条博客的记录&#xff09; 评论回访 私信检测到群发消息自动三连 OR 通过私信指令三连触发 bug优化 优化检测模式&#xff0c;防止出现多触发情况 为了防止操作额度不够&#xff0c…

虚拟局域网PPTP配置与验证

虚拟局域网PPTP配置与验证 前言PPTP服务侧安装配置REF 前言 虚拟专用网&#xff08;Virtual Private Network&#xff0c;VPN&#xff09;是一种通过公共网络建立安全的连接的技术。它能够在不同的地理位置之间建立私密的通信通道&#xff0c;实现远程访问网络资源的安全性和隐…