news 2026/9/23 15:41:15

代码随想录 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/9/23 23:34:07

基于MATLAB实现深度学习图像分类

一、环境配置与数据准备 1.1 环境要求 MATLAB版本&#xff1a;R2021a及以上&#xff08;需安装Deep Learning Toolbox&#xff09;GPU支持&#xff1a;推荐NVIDIA CUDA兼容显卡&#xff08;通过gpuDevice验证&#xff09; 1.2 数据组织结构 dataset/ ├── train/ │ ├──…

作者头像 李华
网站建设 2026/9/24 0:22:04

9、UNIX/Linux 文件操作全解析

UNIX/Linux 文件操作全解析 1. 文件内容的初步探索 当你尝试使用 cat 命令查看文件内容时,可能会遇到权限问题,例如: $ cat myfile cat: myfile: Permission denied若已知文件存在,我们自然会想知道它的内容。虽然文件本质是字节序列,但我们更关心这些字节代表什么。…

作者头像 李华
网站建设 2026/9/24 1:57:50

企业SRC支付漏洞EDUSRC众测挖掘思路技巧操作分享

0x1 前言这篇文章也是给师傅们分享几个SRC漏洞挖掘中的技巧点&#xff0c;两个企业SRC漏洞案例&#xff0c;支付漏洞中&#xff0c;师傅们碰到都可以进行尝试验证下&#xff0c;要是挖到了&#xff0c;像众测中就是中、高危起步了。赏金的价格还不错&#xff0c;两个案例也写的…

作者头像 李华
网站建设 2026/9/23 12:28:11

webpack输出代码报错到指定文本文件

文章目录 概述代码 概述 在vscode的控制台输出的报错是有限的&#xff0c;多了就看不全了。想要看全部代码报错&#xff0c;就产生了如下方式&#xff1a; 代码 // 在package.json的scripts下&#xff0c;增加以下配置&#xff1a; start2: "set NO_COLOR1 && …

作者头像 李华
网站建设 2026/9/23 7:38:26

自然语言处理容易混淆知识点(二)BERT和BERTopic的区别

BERT和BERTopicBERT&#xff08;深度学习模型&#xff09;BERTopic&#xff08;主题建模工具包&#xff09;关系类比详细对比1. BERT&#xff1a;基础组件2. BERTopic&#xff1a;完整系统技术架构图关键区别表格实际代码对比**只用 BERT**使用 BERTopic常见混淆点澄清1. 名字为…

作者头像 李华
网站建设 2026/9/23 4:26:10

GPT-5.2与Gemini 3.0 Pro技术选型指南:核心能力对比+第三方API接入全攻略

随着生成式AI技术的持续突破&#xff0c;大模型已成为驱动开发者创新、企业数字化转型的核心动力。OpenAI最新推出的GPT-5.2与Google迭代的Gemini 3.0 Pro&#xff0c;凭借各自在核心能力上的升级&#xff0c;成为当前技术选型的热门候选。对于广大开发者而言&#xff0c;不仅需…

作者头像 李华