冗余连接问题

本文参考代码随想录

树可以看成是一个连通且 无环 的 无向 图。

给定往一棵 n 个节点 (节点值 1~n) 的树中添加一条边后的图。添加的边的两个顶点包含在 1 到 n 中间,且这条附加的边不属于树中已存在的边。图的信息记录于长度为 n 的二维数组 edges ,edges[i] = [ai, bi] 表示图中在 ai 和 bi 之间存在一条边。

请找出一条可以删去的边,删除后可使得剩余部分是一个有着 n 个节点的树。如果有多个答案,则返回数组 edges 中最后出现的边

思路

并查集:
那么我们就可以从前向后遍历每一条边(因为优先让前面的边连上),边的两个节点如果不在同一个集合,就加入集合(即:同一个根节点)。如果边的两个节点已经出现在同一个集合里,说明着边的两个节点已经连在一起了,再加入这条边一定就出现环了

classSolution:definit(self,n):self.fathers=[iforiinrange(n+1)]deffind(self,v):ifself.fathers[v]==v:returnvreturnself.find(self.fathers[v])defisSame(self,u,v):returnself.find(u)==self.find(v)defjoin(self,u,v):# u->vu=self.find(u)v=self.find(v)ifu==v:returnself.fathers[u]=vdeffindRedundantConnection(self,edges:List[List[int]])->List[int]:self.init(len(edges))foriinedges:u,v=i[0],i[1]ifself.isSame(u,v):returni self.join(u,v)

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

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

相关文章

MOSFET驱动电路设计从零实现:基于IR2110

从零搭建MOSFET驱动电路:IR2110实战全解析你有没有遇到过这样的情况——明明MCU输出了正确的PWM信号,但MOSFET却发热严重、效率低下,甚至莫名其妙烧毁?问题很可能出在驱动电路上。在功率电子系统中,MOSFET是核心开关器…

SpringBoot+Vue 论坛网站平台完整项目源码+SQL脚本+接口文档【Java Web毕设】

💡实话实说:用最专业的技术、最实惠的价格、最真诚的态度服务大家。无论最终合作与否,咱们都是朋友,能帮的地方我绝不含糊。买卖不成仁义在,这就是我的做人原则。摘要 随着互联网技术的快速发展,在线论坛平…

AI SaaS产品的数据管道架构:实时处理方案

AI SaaS产品的数据管道架构:实时处理方案关键词:AI SaaS产品、数据管道架构、实时处理、数据流动、架构设计摘要:本文聚焦于AI SaaS产品的数据管道架构实时处理方案。首先介绍了相关背景知识,让大家明白为什么要关注实时处理以及预…

LVGL移植入门:在STM32上运行GUI的实战案例

在STM32上跑LVGL:从零开始打造嵌入式GUI实战指南你有没有遇到过这样的场景?项目做了一半,客户突然说:“能不能加个触摸屏,界面做得漂亮点?”——传统段码屏瞬间不够看了。这时候,一个轻量、免费…

冗余连接II

本文参考代码随想录 在本问题中,有根树指满足以下条件的 有向 图。该树只有一个根节点,所有其他节点都是该根节点的后继。该树除了根节点之外的每一个节点都有且只有一个父节点,而根节点没有父节点。 输入一个有向图,该图由一个有…

【毕业设计】SpringBoot+Vue+MySQL 游戏销售平台平台源码+数据库+论文+部署文档

💡实话实说:用最专业的技术、最实惠的价格、最真诚的态度服务大家。无论最终合作与否,咱们都是朋友,能帮的地方我绝不含糊。买卖不成仁义在,这就是我的做人原则。摘要 随着互联网技术的快速发展和数字娱乐产业的蓬勃兴…

SpringBoot+Vue 汽车票网上预订系统管理平台源码【适合毕设/课设/学习】Java+MySQL

💡实话实说: 有自己的项目库存,不需要找别人拿货再加价,所以能给到超低价格。 摘要 随着互联网技术的快速发展,传统汽车票销售模式已无法满足现代旅客的需求。线下购票存在排队时间长、信息不对称、票源紧张等问题&am…

LCD12864并行接口入门必看:初始化代码详解

从零点亮一块 LCD12864:并行接口初始化全解析你有没有遇到过这样的情况?电路接得整整齐齐,代码烧录成功,背光一亮,结果屏幕却“黑如墨、白如纸”——啥也不显示。反复检查引脚、重写初始化函数,还是没反应。…

虚拟串口配置入门必看:手把手搭建通信环境

虚拟串口配置实战指南:从零搭建高效通信链路 你有没有遇到过这样的场景? 手头没有目标硬件,但上位机程序已经写好了,急着要验证 Modbus 协议逻辑;或者 CI 测试流水线跑得好好的,却因为服务器没串口而卡住…

AI应用架构师从0到1:AI虚拟培训项目的团队协作与角色分工

AI应用架构师从0到1:AI虚拟培训项目的团队协作与角色分工 1. 引入与连接 1.1 引人入胜的开场 想象一下,在未来的职场中,新员工无需再在冗长的线下培训课堂中昏昏欲睡,而是戴上虚拟现实(VR)设备,瞬间置身于高度仿真的工作场景中,与栩栩如生的虚拟导师进行互动,接受定…

OTG连接键盘鼠标:提升移动办公效率

用一根线把手机变电脑:OTG连接键盘鼠标的实战全解析你有没有过这样的经历?在机场候机时突然要改一份PPT,手指在虚拟键盘上反复敲错字;或者用平板远程登录服务器,却因为没有鼠标而无法精准选中命令行。这些场景下&#…

最长递增子序列的个数

本文参考代码随想录 给定一个未排序的整数数组,找到最长递增子序列的个数。 示例 1: 输入: [1,3,5,4,7] 输出: 2 解释: 有两个最长递增子序列,分别是 [1, 3, 4, 7] 和[1, 3, 5, 7]。 示例 2: 输入: [2,2,2,2,2] 输出: 5 解释: 最长递增子序列的长度是…

【c++进阶】再谈虚函数

关注我,学习c不迷路: 个人主页:爱装代码的小瓶子 专栏如下: c学习Linux学习 后续会更新更多有趣的小知识,关注我带你遨游知识世界 期待你的关注。 文章目录深入探索C虚函数:从编译器视角看多态的“幕后魔法”1. 一…

I2C通信协议工业级设计要点:核心要点

工业级I2C通信设计实战:从信号完整性到系统容错的全链路优化 你有没有遇到过这样的场景? 一个本该稳定运行的工业传感器网络,突然开始频繁丢包;某台设备上的温度读数卡死不动,重启后又恢复正常;更糟的是&a…

Proteus 8.9环境搭建教程:全面讲解安装细节

从零搭建Proteus 8.9仿真环境:手把手带你避开每一个坑你是不是也曾在安装Proteus时被各种“找不到许可”、“服务无法启动”、“MCU不运行”的报错搞得焦头烂额?明明按照网上的教程一步步来,结果一打开软件就弹窗警告——别急,这并…

杰理芯片SDK开发-AD697N添加按键触摸提示音功能教程

前言 到现在为止也开发了许多杰理TWS蓝牙耳机项目SDK的案子,在调试案子时不断的向前辈们学习到了很多关于蓝牙TWS耳机专业的知识。想在这里做一个学习汇总,方便各位同行和对杰理芯片SDK感兴趣的小伙伴们学习; 本章详细讲解杰理AD697N芯片按键…

1.13草花互动面试

1. 浏览器输入网址到服务器的完整流程(从 DNS 解析到页面渲染)怎么答:“当我在浏览器输入一个网址(比如 https://www.example.com)并回车后,整个过程大致是这样的:DNS 解析:浏览器把…

Cortex-M ISR响应延迟优化完整示例

如何让 Cortex-M 的中断快到“无感”?——ISR 响应延迟优化实战全解析在嵌入式系统的世界里,“快”从来不是目的,而是生存的底线。你有没有遇到过这样的场景:电机控制环路突然失稳、音频播放咔哒作响、通信数据包莫名丢失……排查…

芯片验证工程师的写代码能力不是第一位

很多人以为验证工程师就是搭环境、跑仿真。但这只是表面工作。验证的核心在于发现问题,而不是证明设计正确。举个实际的例子:某个FIFO模块在正常读写测试下运行完美,覆盖率也达到了100%。但有个验证工程师在review代码时问了一句:…

IAR软件编译选项设置深度剖析与优化建议

深入IAR编译器:从配置到实战的性能调优全解析在嵌入式开发的世界里,一个常被忽视却至关重要的环节是——编译器不是“翻译机”,而是系统性能的塑造者。许多工程师习惯性地把代码写完后点击“Build”,看到绿色对勾就认为万事大吉。…