LeetCode 934. 最短的桥(2次BFS)

1. 题目

在给定的二维二进制数组 A 中,存在两座岛。(岛是由四面相连的 1 形成的一个最大组。)

现在,我们可以将 0 变为 1,以使两座岛连接起来,变成一座岛。

返回必须翻转的 0 的最小数目。(可以保证答案至少是 1。)

示例 1:
输入:[[0,1],[1,0]]
输出:1示例 2:
输入:[[0,1,0],[0,0,0],[0,0,1]]
输出:2示例 3:
输入:[[1,1,1,1,1],[1,0,0,0,1],[1,0,1,0,1],[1,0,0,0,1],[1,1,1,1,1]]
输出:1提示:
1 <= A.length = A[0].length <= 100
A[i][j] == 0 或 A[i][j] == 1

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/shortest-bridge
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. BFS解题

  • 先找到第一个1,然后把相连的1用BFS全部加入到队列Q里
  • 然后对Q再使用BFS,直到找到1,就连通了两座岛
    在这里插入图片描述
class Solution {vector<vector<int>> dir = {{1,0},{0,1},{0,-1},{-1,0}};//移动方向
public:int shortestBridge(vector<vector<int>>& A) {queue<pair<int,int>> q;//第二次BFS用的队列queue<pair<int,int>> firstLand;//第一次BFS用的队列int i, j, n = A.size(), k, x, y, step=0, size;bool found = false;vector<vector<bool>> visited(n,vector<bool> (n, false));for(i = 0; i < n; ++i){for(j = 0; j < n; ++j)if(A[i][j]){q.push(make_pair(i,j));firstLand.push(make_pair(i,j));visited[i][j] = true;found = true;break;}if(found)break;}pair<int,int> tp;while(!firstLand.empty())//第一次BFS{tp = firstLand.front();firstLand.pop();for(k = 0; k < 4; ++k){x = tp.first + dir[k][0];y = tp.second + dir[k][1];if(x>=0 && x<n && y>=0 && y<n && A[x][y] && !visited[x][y]){firstLand.push(make_pair(x,y));q.push(make_pair(x,y));//q里存储了所有的第一个岛的点visited[x][y] = true;}}}found = false;while(!q.empty())//第二次BFS{size = q.size();while(size--)//向外扩展一层{tp = q.front();q.pop();for(k = 0; k < 4; ++k){x = tp.first + dir[k][0];y = tp.second + dir[k][1];if(x>=0 && x<n && y>=0 && y<n && !visited[x][y]){if(A[x][y] == 0){q.push(make_pair(x,y));visited[x][y] = true;}else//找到1了,连通了{found = true;break;}}}if(found)break;}step++;if(found)break;}return step-1;//最后一步1不算,所以-1}
};

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

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

相关文章

讲习班 | ISWC 2022 知识感知的零样本学习

前言近年来&#xff0c;深度学习技术依托强大的计算资源、复杂的神经网络和大规模的标注数据集在视觉、语言、医学、金融等广泛的研究领域取得了显著的成就。然而&#xff0c;在现实应用场景中&#xff0c;尤其是在开放世界的背景假设下&#xff0c;随时会有一些新的概念/对象出…

谷歌提出 RNN 版 Transformer,或为长文本建模的当前最优解

文 | 小轶今天给大家介绍一篇谷歌的最新工作&#xff0c;解决的是 Transformer 的长文本处理问题。在原生 Transformer 中&#xff0c;attention 的复杂度是输入序列长度的平方级别&#xff0c;因此限制了它处理长文本的能力。简单来说&#xff0c;本文提出的解决方案就是把 Tr…

Spring Cloud构建微服务架构:服务容错保护(Hystrix依赖隔离)【Dalston版】

前言 在上一篇《Spring Cloud构建微服务架构&#xff1a;服务容错保护&#xff08;Hystrix服务降级&#xff09;》中&#xff0c;我们已经体验了如何使用HystrixCommand来为一个依赖资源定义服务降级逻辑。实现方式非常简单&#xff0c;同时对于降级逻辑还能实现一些更加复杂的…

重点领域知识工程课程群虚拟教研室建设启动会暨第一次教学研讨会在线召开...

重点领域知识工程课程群虚拟教研室启动会暨第一次教学研讨会于2022年10月11日晚在线召开。重点领域教学资源建设项目管理办公室相关负责人、中国中文信息学会语言与知识计算专委会主任李涓子、天津大学智能与计算学部主任李克秋出席会议并致辞。天津大学人工智能学院院长胡清华…

LeetCode 556. 下一个更大元素 III

1. 题目 给定一个32位正整数 n&#xff0c;你需要找到最小的32位整数&#xff0c;其与 n 中存在的位数完全相同&#xff0c;并且其值大于n。如果不存在这样的32位整数&#xff0c;则返回-1。 示例 1: 输入: 12 输出: 21示例 2: 输入: 21 输出: -1来源&#xff1a;力扣&#x…

这可能是你与 AI 大神们近距离接触的唯一机会……

明人不说暗话&#xff1a;作为粤海街头放飞梦想的有志青年&#xff0c;他们可能是国内最大胆的「狗仔队」。从2016年成立至今&#xff0c;他们报道过&#xff1a;国内外数十场 AI 学术会议动态&#xff0c;写下老中青研究者们在会场前线的精神风采AI 领域的每一个最新研究突破&…

Spring Cloud构建微服务架构:服务容错保护(Hystrix服务降级)【Dalston版】

前言 在微服务架构中&#xff0c;我们将系统拆分成了一个个的服务单元&#xff0c;各单元应用间通过服务注册与订阅的方式互相依赖。由于每个单元都在不同的进程中运行&#xff0c;依赖通过远程调用的方式执行&#xff0c;这样就有可能因为网络原因或是依赖服务自身问题出现调…

论文浅尝 | 基于注意力图卷积神经网络的依存驱动关系抽取

笔记整理&#xff1a;王大壮论文链接&#xff1a;https://aclanthology.org/2021.acl-long.344.pdf动机句法信息,特别是依存树,已经被广泛应用于关系提取,以更好地分析与给定实体相关联的上下文信息。然而大多数现有的研究都饱受依赖树噪声的影响&#xff0c;特别是当它们自动生…

别再龟速炼丹了!聊聊怎样科学提升训练效率

文 | Horace He等编 | Juniper源 | 机器之心深度学习是门玄学&#xff1f;也不完全是。每个人都想让模型训练得更快&#xff0c;但是你真的找对方法了吗&#xff1f;在康奈尔大学本科生、曾在 PyTorch 团队实习的 Horace He 看来&#xff0c;这个问题应该分几步解决&#xff1a…

LeetCode 第 17 场双周赛(469/897,前52.3%)

文章目录1. 比赛结果2. 题目LeetCode 5143. 解压缩编码列表 easyLeetCode 5144. 矩阵区域和 mediumLeetCode 5145. 祖父节点值为偶数的节点和 mediumLeetCode 5146. 不同的循环子字符串 hard1. 比赛结果 做出来了1, 3两题&#xff0c;第2题在比赛结束后10分钟提交通过。 2.…

Spring Cloud构建微服务架构:分布式配置中心【Dalston版】

Spring Cloud Config是Spring Cloud团队创建的一个全新项目&#xff0c;用来为分布式系统中的基础设施和微服务应用提供集中化的外部配置支持&#xff0c;它分为服务端与客户端两个部分。其中服务端也称为分布式配置中心&#xff0c;它是一个独立的微服务应用&#xff0c;用来连…

图谱实战 | 知识图谱在美团搜索酒旅场景认知中的应用

分享嘉宾&#xff1a;陈骐 美团 高级算法专家编辑整理&#xff1a;毛佳豪 中国平安浙江分公司(实习)出品平台&#xff1a;DataFunTalk导读&#xff1a;知识图谱凭借能够以图模型描述知识和世界万物关联关系的特性&#xff0c;在各行业领域大放异彩。与此同时&#xff0c;知识图…

AI技术在空气净化机器人中的高能应用

本文转载自公众号“夕小瑶的卖萌屋”&#xff0c;专业带逛互联网算法圈的神操作 -----》我是传送门 关注后&#xff0c;回复以下口令&#xff1a; 回复【789】 &#xff1a;领取深度学习全栈手册&#xff08;含NLP、CV海量综述、必刷论文解读&#xff09; 回复【入群】&#xf…

Spring Cloud构建微服务架构:服务消费(Feign)【Dalston版】

通过前两篇《Spring Cloud构建微服务架构&#xff1a;服务消费&#xff08;基础&#xff09;》和《Spring Cloud构建微服务架构&#xff1a;服务消费&#xff08;Ribbon&#xff09;》&#xff0c;我们已经学会了在Spring Cloud中基本的服务调用方式。本文我们将继续介绍Spring…

LeetCode 1317. 将整数转换为两个无零整数的和

1. 题目 「无零整数」是十进制表示中 不含任何 0 的正整数。 给你一个整数 n&#xff0c;请你返回一个 由两个整数组成的列表 [A, B]&#xff0c;满足&#xff1a; A 和 B 都是无零整数A B n 题目数据保证至少有一个有效的解决方案。 如果存在多个有效解决方案&#xff…

预训练模型对实体的表示能力差?一个简单有效的解法来了(开源)

本文转载自公众号“夕小瑶的卖萌屋”&#xff0c;专业带逛互联网算法圈的神操作 -----》我是传送门 关注后&#xff0c;回复以下口令&#xff1a; 回复【789】 &#xff1a;领取深度学习全栈手册&#xff08;含NLP、CV海量综述、必刷论文解读&#xff09; 回复【入群】&#xf…

图谱实战 | 深度应用驱动的医学知识图谱构建

分享嘉宾&#xff1a;徐美兰 浙江数字医疗卫生技术研究院 数字医学知识中心主任编辑整理&#xff1a;李杰 京东出品平台&#xff1a;DataFunTalk导读&#xff1a;数研院这些年在知识图谱建设上取得了丰硕成果&#xff0c;今天我们将图谱构建过程中的经验、心得分享给大家&#…

朴素贝叶斯法(Naive Bayes,NB)

文章目录1. 朴素贝叶斯法的学习与分类1.1 基本方法2. 参数估计2.1 极大似然估计2.2 学习与分类算法2.2.1 例题2.2.2 例题代码2.3 贝叶斯估计&#xff08;平滑&#xff09;2.3.1 例题2.3.2 例题代码3. 自编程实现NB4. sklearn.naive_bayes1. 朴素贝叶斯法的学习与分类 1.1 基本…

《Easy RL:强化学习教程》出版了!文末送书

作为人工智能里最受关注的领域之一&#xff0c;强化学习的热度一直居高不下&#xff0c;但它的学习难度也同样不低。在学习强化学习的过程中&#xff0c;遇到了有无数资料却难以入门的问题&#xff0c;于是发起了Datawhale强化学习项目&#xff0c;希望自学的同时帮助更多学习者…

Spring Cloud构建微服务架构:服务消费(基础)【Dalston版】

通过上一篇《Spring Cloud构建微服务架构&#xff1a;服务注册与发现》&#xff0c;我们已经成功地将服务提供者&#xff1a;eureka-client或consul-client注册到了Eureka服务注册中心或Consul服务端上了&#xff0c;同时我们也通过DiscoveryClient接口的getServices获取了当前…