Leetcode 684. 冗余连接(dsu,氵)
684. 冗余连接
难度中等260收藏分享切换为英文接收动态反馈
在本问题中, 树指的是一个连通且无环的无向图。
输入一个图,该图由一个有着N个节点 (节点值不重复1, 2, ..., N) 的树及一条附加的边构成。附加的边的两个顶点包含在1到N中间,这条附加的边不属于树中已存在的边。
结果图是一个以边
组成的二维数组。每一个边
的元素是一对[u, v]
,满足 u < v
,表示连接顶点u
和v
的无向图的边。
返回一条可以删去的边,使得结果图是一个有着N个节点的树。如果有多个答案,则返回二维数组中最后出现的边。答案边 [u, v]
应满足相同的格式 u < v
。
示例 1:
输入: [[1,2], [1,3], [2,3]] 输出: [2,3] 解释: 给定的无向图为:1/ \ 2 - 3
示例 2:
输入: [[1,2], [2,3], [3,4], [1,4], [1,5]] 输出: [1,4] 解释: 给定的无向图为: 5 - 1 - 2| |4 - 3
注意:
- 输入的二维数组大小在 3 到 1000。
- 二维数组中的整数在1到N之间,其中N是输入数组的大小。
更新(2017-09-26):
我们已经重新检查了问题描述及测试用例,明确图是无向 图。对于有向图详见冗余连接II。对于造成任何不便,我们深感歉意。
class dsu:def __init__(self,n):self.n=nself.rk=[1]*(n+1)self.f=list(range(n+1))def find(self,x):if self.f[x]!=x:self.f[x]=self.find(self.f[x])return self.f[x]def mer(self,x,y):fx,fy=self.find(self.f[x]),self.find(self.f[y])if fx==fy:returnif self.rk[fx]<self.rk[fy]:fx,fy=fy,fxself.rk[fx]+=self.rk[fy]self.f[fy]=fxclass Solution:def findRedundantConnection(self, edges: List[List[int]]) -> List[int]:dsu1=dsu(len(edges))for x,y in edges:if x>y:x,y=y,xfx,fy=dsu1.find(dsu1.f[x]),dsu1.find(dsu1.f[y])if fx==fy:return [x,y]dsu1.mer(x,y)return []
Leetcode 684. 冗余连接(dsu,氵)相关推荐
- LeetCode 684. 冗余连接(并查集)
1. 题目 在本问题中, 树指的是一个连通且无环的无向图. 输入一个图,该图由一个有着N个节点 (节点值不重复1, 2, -, N) 的树及一条附加的边构成.附加的边的两个顶点包含在1到N中间,这条附 ...
- leetcode 684. 冗余连接()
在本问题中, 树指的是一个连通且无环的无向图. 输入一个图,该图由一个有着N个节点 (节点值不重复1, 2, -, N) 的树及一条附加的边构成.附加的边的两个顶点包含在1到N中间,这条附加的边不属于 ...
- Leetcode 684: 冗余连接 Redundant Connection
中文描述: 在本问题中, 树指的是一个连通且无环的无向图. 输入一个图,该图由一个有着N个节点 (节点值不重复1, 2, -, N) 的树及一条附加的边构成.附加的边的两个顶点包含在1到N中间,这条附 ...
- LeetCode 685. 冗余连接 II(并查集)
1. 题目 在本问题中,有根树指满足以下条件的有向图.该树只有一个根节点,所有其他节点都是该根节点的后继. 每一个节点只有一个父节点,除了根节点没有父节点. 输入一个有向图,该图由一个有着N个节点 ( ...
- leetcode 684. Redundant Connection | 684. 冗余连接(并查集)
题目 https://leetcode.com/problems/redundant-connection/ 题解 并查集问题 1)有若干个样本a.b.c.d-类型假设是V 2)在并查集中一开始认为每 ...
- LeetCode 685. 冗余连接 II
文章目录 解法1:并查集 https://leetcode-cn.com/problems/redundant-connection-ii/ 难度:困难 在本问题中,有根树指满足以下条件的有向图. ...
- Leetcode 685. 冗余连接 II Redundant Connection II
中文描述: 在本问题中,有根树指满足以下条件的 有向 图.该树只有一个根节点,所有其他节点都是该根节点的后继.该树除了根节点之外的每一个节点都有且只有一个父节点,而根节点没有父节点. 输入一个有向图, ...
- leetcode之DFS+BFS+DSU刷题总结2
leetcode之DFS+BFS+DSU刷题总结2 1-对称二叉树 题目链接:题目链接戳这里!!! 思路1:迭代法 一棵二叉树,左右子树分别进队,如果左右子树都为空,则结束遍历,如果左右子树仅一个为空 ...
- LeetCode 1640. 能否连接形成数组(哈希)
文章目录 1. 题目 2. 解题 1. 题目 给你一个整数数组 arr ,数组中的每个整数 互不相同 . 另有一个由整数数组构成的数组 pieces,其中的整数也 互不相同 .请你以 任意顺序 连接 ...
- LeetCode 555. 分割连接字符串
文章目录 1. 题目 2. 解题 1. 题目 给定一个字符串列表,你可以将这些字符串连接成一个循环字符串,对于每个字符串,你可以选择是否翻转它. 在所有可能的循环字符串中,你需要分割循环字符串(这将使 ...
最新文章
- 排序算法(更新ing)(C语言实现)(认真的不像实力派)
- malloc和new的区别是什么?
- ICS汇编学习笔记——8086中的寄存器
- http压缩方法(IIS 6.0 与IIS 7.0的详解)
- java两个很大的数相加_两个超大数的相加
- CM: UPDATE_PAYLOAD_FROM_ADDINSCH
- 【JAVA 第三章 流程控制语句】课后习题 计算两个日期之间的天数
- IE6不支持hover赋予css样式的解决方法 如div:hover li:hover支持
- 不确定性原理的前世今生 · 数学篇(三)
- 怎样使按钮响应回车键
- sigar 获取跨平台服务器信息
- oracle 脚本定时,Oracle定时任务备份脚本
- Unity UnityWebRequest使用方法
- OpenStack 从ISO启动并安装VM
- plsql误删除数据,怎么恢复?
- C语言 AES加解密
- 第二周:java异常和常用类 容器
- 女生适合干【长期第一线编程工作】 男生能干的女生照样可以做的更好
- 拉里·埃里森亲自支招,数据库自动化之后,DBA何去何从?
- leetcode-838:推多米诺
热门文章
- Required request body is missing 问题解决
- Linux S3C2440 学习笔记02
- WordPress文章页面获取评论次数
- 成长篇之代码灵异事件
- Spring Boot使用RabbitMQ出现诡异异常:Failed to send reply with payload 'OK',Cannot determine ReplyTo message
- python世界杯问题
- Vue使用Upload上传图片报错:TypeError: Cannot create property 'xxx' on string 'xxxx'
- 专访 HackerOne COO 王宁:尊重规则是漏洞平台成功的秘诀,欢迎更多成人网站进驻 | 宅客...
- 【TcaplusDB知识库】读取数据示例(TDR表)
- Linux 下街机模拟器 mame 安装