当前位置: 首页> 科技> IT业 > 代码随想录算法训练营第55天|并查集理论基础、107. 寻找存在的路径

代码随想录算法训练营第55天|并查集理论基础、107. 寻找存在的路径

时间:2025/7/12 6:04:45来源:https://blog.csdn.net/Yinems/article/details/141433955 浏览次数:0次

打卡Day55

  • 1. 并查集理论基础
  • 2. 107. 寻找存在的路径

1. 并查集理论基础

文档讲解: 代码随想录

并查集主要有两个功能:将两个元素添加到一个集合中,判断两个元素是否在同一个集合中。空间复杂度为 O ( n ) O(n) O(n),路径压缩后的并查集时间复杂度在 O ( l o g n ) O(logn) O(logn) O ( 1 ) O(1) O(1) 之间,且随着查询或者合并操作的增加,会越来越趋于 O ( 1 ) O(1) O(1)

2. 107. 寻找存在的路径

题目链接:107. 寻找存在的路径
文档讲解: 代码随想录

#定义寻根函数
def find(u):if father[u] == u:return u else:#路径压缩father[u] = find(father[u])return father[u]
#判断u和v是否同根
def issame(u,v):u = find(u)v = find(v)return u == v
#将v -> u 这条边加入并查集
def joinside(u,v):u = find(u)v = find(v)if u == v:return father[v] = u 
n,m = map(int,input().split())
father = [0] * (n+1)
#并查集初始化
for i in range(n+1):father[i] = i 
for _ in range(m):s,t = map(int,input().split())joinside(s,t) 
source,destination = map(int,input().split())
res = issame(source,destination)
if res:print(1)
else:print(0)
关键字:代码随想录算法训练营第55天|并查集理论基础、107. 寻找存在的路径

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: