news 2026/6/9 23:46:54

代码随想录 684.冗余连接

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
代码随想录 684.冗余连接

这道题也是并查集基础题目。

1.并查集可以解决的问题:

(1)判断两个节点是否在一个集合。

(2)将两个节点添加到一个集合中。

2.题目要求:对于一个无向图,返回一条可以删去的边,使得结果图是一个有着N个节点的树(即,只有一个根节点)。如果有多个答案,则返回二维数组中最后出现的边。

3.思路:可以从前向后遍历每一条边(因为优先让前面的边连上),边的两个节点如果不在同一个集合,就加入集合(即同一个根节点)。

(1)如下图所示,节点a和节点b不在同一个集合,那么就可以将两个节点连接在一起。

(2)如果边的两个节点已经出现在同一个集合里,则说明这条边的两个节点已经连在一起了,再加入这条边一定就出现环了,如下图所示。

4.注意:题目已说明该图是在树的基础上添加一条边得到,因此只会有一条冗余边,因此可以在遇到同一个根的两个节点后直接返回即可。

附代码:

class Solution { private int[] p; public int[] findRedundantConnection(int[][] edges) { int n = edges.length; p = new int[n]; for(int i = 0;i < n;i++){ p[i] = i; } for(int i = 0;;i++){ //无限循环,会一直执行到找到冗余边并返回,所以该方法一定有返回值(因为树的性质保证了该方法一定有一条冗余边) //若加上i < n条件,则编译器会认为如果循环内所有if(pa == pb)条件都不满足,那么循环会正常结束,此时循环结束后就没有返回值 //编译器在编译时只做静态代码分析,不执行程序逻辑推理 //编译器认为条件判断里的return只是可能返回,若加上i < n,有限循环中还需要在下面加一个return条件 int pa = find(edges[i][0] - 1); //因为节点编号从1开始,所以要 - 1做数组映射 int pb = find(edges[i][1] - 1); if(pa == pb){ return edges[i]; } p[pa] = pb; } } private int find(int x){ if(p[x] != x){ p[x] = find(p[x]); } return p[x]; } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/9 8:04:08

10、UNIX 文件与进程管理全解析

UNIX 文件与进程管理全解析 在计算机操作中,文件管理和进程控制是非常重要的部分,尤其是在 UNIX 系统中。下面将详细介绍 UNIX 系统中文件的归档、压缩以及进程的相关知识。 1. 文件归档与压缩 在日常使用计算机时,我们常常需要对整个目录进行备份,以防系统崩溃,或者将…

作者头像 李华
网站建设 2026/6/9 16:07:12

14、开源办公与网络应用全解析

开源办公与网络应用全解析 在数字化办公与网络交流的大环境下,有许多实用的工具和应用能帮助我们更高效地完成工作和沟通。下面将详细介绍一些开源办公软件以及网络应用的特点和使用方法。 文档转换与注意事项 当文档转换完成后,进度屏幕会显示转换过程的结果。不过需要注…

作者头像 李华
网站建设 2026/6/9 16:11:29

Ubuntu安装及相关设置

Ubuntu安装及相关设置 分区设置参考 个人推荐&#xff0c;不用软件数据存放的位置不同&#xff0c;避免安装时大量修改配置&#xff0c;耗时耗力。挂载点大小类型备注/boot/efi512MB&#xff08;默认即可&#xff09;EFIUEFI必选swap内存2倍&#xff08;4G/8G&#xff09;swap休…

作者头像 李华
网站建设 2026/6/9 7:46:45

8、网络技术:VXLAN BGP EVPN中的关键特性解析

网络技术&#xff1a;VXLAN BGP EVPN中的关键特性解析在网络技术的发展中&#xff0c;VXLAN BGP EVPN 架构凭借其高效、灵活的特点&#xff0c;成为了大型数据中心网络的重要解决方案。本文将深入探讨该架构中的几个关键特性&#xff0c;包括 IGMP 窥探、分布式 IP 任播网关、集…

作者头像 李华
网站建设 2026/6/8 16:42:20

18、数据中心外部连接性设计与实现

数据中心外部连接性设计与实现1. 外部连接性概述数据中心为用户托管数据和应用程序&#xff0c;而用户通常位于数据中心外部。因此&#xff0c;数据中心的外部连接性设计至关重要&#xff0c;它涉及到不同的放置选项和互连选项&#xff0c;包括Layer 3和Layer 2的连接性选项。对…

作者头像 李华
网站建设 2026/6/8 5:18:16

Dify前端开发完全指南:从入门到精通,收藏这篇就够了

摘要 本文全面介绍了Dify前端开发框架&#xff0c;包括环境搭建、开发流程、测试方法以及部署实践。通过详细的步骤说明和丰富的代码示例&#xff0c;帮助开发者快速掌握Dify前端开发技能&#xff0c;构建高质量的AI应用界面。 目录 Dify前端框架概述开发环境搭建项目配置详…

作者头像 李华