0
点赞
收藏
分享

微信扫一扫

【LeetCode】684. 冗余连接


1. 题目

【LeetCode】684. 冗余连接_算法

2. 分析

依次把每条边都给建到树中,建树的时候判断加入这条边是否会成环,如果成环,那么就直接返回即可。
环的判断可以使用一个并查集解决。

3. 代码

class Solution:
def findRedundantConnection(self, edges: List[List[int]]) -> List[int]:
fat = [i for i in range(1005)]

# 轮流的加入节点,判断是否会导致环的产生
for i in range(len(edges)):
u,v = edges[i]
# 判断两个节点是否是同一个簇
fa_u = self.getFa(fat,u)
fa_v = self.getFa(fat,v)

# 如果两者的根不同,合并
if fa_u != fa_v:
fat[max(fa_u,fa_v)] = min(fa_u,fa_v)
else:
return edges[i]


# 得到一个节点的根节点
def getFa(self,father,n):
while(n!=father[n]):
n = father[n]
return father[n]


举报

相关推荐

0 条评论