C++ BFS相关题目

目录

图像渲染  

岛屿数量


图像渲染  

733. 图像渲染

 vis就是标记1有没有被用过

符合条件的都放到队列里,每次出队列一个,判四个,

如果要改的值与当前的值相同直接返回

注意:image[x][y] == prev要放在坐标判断的后面,不然会越界,本来想的是不成立先跳出if,不对,这个左边的判段就是为了image[x][y] == prev这个,先后顺序

class Solution {
public:int dx[4] = {0, 0, 1, -1};int dy[4] = {1, -1, 0, 0};vector<vector<int>> floodFill(vector<vector<int>>& image, int sr, int sc, int color) {if(image[sr][sc] == color) return image;int m = image.size(), n = image[0].size();queue<pair<int, int>> q;q.push({sr, sc});int prev = image[sr][sc];while(q.size()){auto e = q.front(); q.pop();image[e.first][e.second] = color;for(int i = 0; i < 4; i++){int x = e.first + dx[i], y = e.second + dy[i];if(x >= 0 && x < m && y >= 0 && y < n && image[x][y] == prev)q.push({x, y});}}return image;}
};

  岛屿数量

 200. 岛屿数量

 

对每一个位置找联通块,对找过的1进行标记

错误:因为先是在里面定义的,发现bfs也要用,又在全局定义。。。mn不对,一直不过,第二次这样了

3.给的是string,传的是char,vs里编不过

class Solution {
public:vector<vector<bool>> vis;vector<int> dx = {0, 0, -1, 1};vector<int> dy = {1, -1, 0, 0};int m, n;int numIslands(vector<vector<char>>& grid) {//加了int 导致一直不对m = grid.size(), n = grid[0].size();vis.resize(m, vector<bool>(n, false));int ret = 0;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<pair<int, int>> q;q.push({i, j});vis[i][j] = true;while(q.size()){auto e = q.front(); q.pop();for(int i = 0; i < 4; i++){int x = e.first + dx[i], y = e.second + dy[i];//不写范围保证,会报错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/pingmian/25958.shtml

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

相关文章

我的mybatis学习笔记之二

第一版学习笔记 1,接口是编程: 原生: Dao > DaoImpl mybatis: Mappper > XXXMapper.xml 2,SqlSession代表和数据库的一次会话:用完必须关闭 3,SqlSession和connection一样是非线程安全的.每次使用都必须去获取新的对象 4,mapper接口没有是一类,但是mybtis会为这个接口生…

Linux启动KKfileview文件在线浏览时报错:启动office组件失败,请检查office组件是否可用

目录 1、导论 2、报错信息 3、问题分析 4、解决方法 4.1、下载 4.2、安装步骤 1、导论 今天进行项目部署时&#xff0c;遇到了一个问题。在启动kkfileview时&#xff0c;出现了报错异常&#xff1a; 2024-06-09 06:36:44.765 ERROR 1 --- [ main] cn.keking.service.Of…

运维小妙招:如何让系统信息随登录自动展现?

在日常运维工作中&#xff0c;及时获取系统的基本信息对于维护系统的稳定性和安全性至关重要。通过一个简单的登录脚本&#xff0c;我们可以在用户每次登录时自动显示系统的关键信息&#xff0c;这不仅提高了工作效率&#xff0c;还能快速定位问题。本文将介绍如何编写这样一个…

设计模式七大原则-接口隔离原则InterfaceSegregation

接口隔离原则&#xff1a; 客户端不应该依赖它不需要的接口&#xff0c;即一个类对另一个类的依赖应该建立在最小的接口上 案例&#xff1a; 类A通过接口Interface1依赖类B&#xff0c;类C通过接口Interface1依赖类D&#xff0c;如果接口Interface1对于类A和类c来说不是最小…

k8s-CCE使用node节点使用VIP--hostNetworkhostPort

CCE使用node节点使用VIP 背景:想在节点上使用VIP,将nodeport服务做到高可用。启动VIP后发现访问失败 部署 ! Configuration File for keepalived global_defs { router_id master-node }vrrp_instance VI_1 {state BACKUPinterface eth0mcast_src_ip 10.1.0.60virtual_rou…

写给大数据开发的,要给领导汇报什么?

上篇&#xff1a;写给大数据开发&#xff0c;如何去掌握数据分析 就像说经济学家不炒股一样&#xff0c;有些数据开发不喜欢讲数据&#x1f4ca;&#xff0c;就很离谱…自己不讲数据&#xff0c;不相信数据&#xff0c;别人也不敢用了&#xff5e; 所以找上级汇报&#xff0…

KUKA机器人KRC5控制柜面板LED显示

对于KUKA机器人新系列控制柜KRC5控制柜来说&#xff0c;其控制柜面板LED布局如下图&#xff1a; 其中①②③④分别为&#xff1a; 1、机器人控制柜处于不同状态时&#xff0c;LED显示如下&#xff1a; 2、机器人控制柜正在运行时&#xff1a; 3、机器人控制柜运行时出现的故障…

C# BindingSource 未完BindingNavigator

数据绑定导航事件数据验证自定义示例示例总结 在 C#中&#xff0c; BindingSource 是一个非常有用的控件&#xff0c;它提供了数据绑定的基础设施。 BindingSource 允许开发者将数据源&#xff08;如数据库、集合、对象等&#xff09;与用户界面控件&#xff08;如文本框、下…

01、Linux网络设置

目录 1.1 查看及测试网络 1.1.1 查看网络配置 1、查看网络接口地址 2、查看主机状态 3、查看路由表条目 4、查看网络连接qing 1.1.2 测试网络连接 1.测试网络连接 2.跟踪数据包的路由路径 3.测试DNS域名解析 1.2 设置网络地址参数 1.2.1 使用网络配置命令 1.修改网卡…

11_1 Linux NFS服务与触发挂载autofs

11_1 Linux NFS服务与触发挂载服务 文章目录 11_1 Linux NFS服务与触发挂载服务[toc]1. NFS服务基础1.1 示例 2. 触发挂载autofs2.1 触发挂载基础2.2 触发挂载进阶autofs与NFS 文件共享服务&#xff1a;scp、FTP、web&#xff08;httpd&#xff09;、NFS 1. NFS服务基础 Netwo…

在Linux or Windows中如何优雅的写出对拍

在Linux or Windows中如何优雅的写出对拍 一、前言二、结论1、对拍 三、对拍详解1、什么是对拍呢&#xff1f;&#x1f9d0;2、对拍的组成部分3、输入数据生成4、对拍程序5、操作流程 四、最后 一、前言 网上的对拍程序层出不穷&#xff0c;大多Linux和Windows中的对拍程序都是…

MySQL 函数与约束

MySQL 函数与约束 文章目录 MySQL 函数与约束1 函数1.1 字符串函数1.2 数值函数1.3 日期函数1.4 流程函数 2 约束2.1 概述2.2 约束演示2.3 外键约束2.4 删除/更新行为 1 函数 函数是指一段可以直接被另一程序调用的程序或代码。 1.1 字符串函数 MySQL中内置了很多字符串函数&…

【面试】什么是字节码指令

目录 1. 说明2. 定义3. 组成3.1 操作码&#xff08;Opcode&#xff09;3.2 操作数&#xff08;Operands&#xff09; 4. 特点5. 与数据类型的关系6.作用 1. 说明 1.字节码指令是Java虚拟机&#xff08;JVM&#xff09;执行的基本单元&#xff0c;它由操作码&#xff08;Opcode…

通用信息提取数据预处理

train_data./datasets/duuie output_folder./datasets/duuie_pre ignore_datasets["DUEE", "DUEE_FIN_LITE"] schema_folder./datasets/seen_schema # 对CCKS2022 竞赛数据进行预处理 import shutil # shutil.copytree(train_data,output_folder) impor…

项目:基于httplib/消息队列负载均衡式在线OJ

文章目录 写在前面关于组件开源仓库和项目上线其他文档说明项目亮点 使用技术和环境项目宏观结构模块实现compiler模块runner模块compile_run模块compile_server模块 基于MVC结构的OJ服务什么是MVC&#xff1f;用户请求服务路由功能Model模块view模块Control模块 写在前面 关于…

linux安装jdk + docker+dockercompose+aliyunACR

下载安装包 链接&#xff1a;https://pan.baidu.com/s/1AyFvPA5qwy4IxfZoTQohrQ 提取码&#xff1a;6666 安装jdk jdk-8u411-linux-x64.tar.gz 链接&#xff1a;https://pan.baidu.com/s/1BZ7J4L5PY-9nuQyxBMDGTA 提取码&#xff1a;6666 1、解压jdk tar -xvf jdk-8u411-li…

算法:读取redis中指令查询的键

1&#xff0c;redis查询的代码&#xff1a; 只读取双引号奇数行的数 34575) "7193139"34576) "0"34577) "7078990"34578) "0"34579) "7296242"34580) "0"34581) "1650126"34582) "0"…

如何克隆笔记本电脑上的硬盘?

笔记本电脑的信息存储在硬盘上&#xff0c;一旦硬盘发生故障&#xff0c;数据很容易丢失。克隆技术使我们能够将一个硬盘上的数据精确复制到另一个硬盘上&#xff0c;然后将其用作备份。此外&#xff0c;如果我们决定升级到更大容量或固态硬盘&#xff0c;克隆技术还允许我们将…

linux中xterm窗口怎么调整字体大小

需求&#xff1a;打开的xterm窗口字体比较小&#xff0c;怎么才能调整字体大小&#xff0c;打开的大写&#xff1a; 解决方法&#xff1a; 在home目录下搞一个设置文件 .Xresource&#xff0c;里面内容如下 然后把设置文件添加到 .tcshrc 文件中生效 这样重新打开的xterm字…

真北游记|三江交汇,碧海苍梧,端午去梧州吃龟苓膏

准备 t-14&#xff1a;高铁抢票&#xff08;A&#xff09; t-14&#xff1a;订行程(B)酒店&#xff08;C&#xff09; T-2&#xff1a;准备水、零食 T-1&#xff1a;物质准备&#xff1a;衣服、纸巾、毛巾、雨伞&#x1f302;、拖鞋、口罩&#x1f637;&#xff08;D&#xff0…