关注
第四题并查集 这样写对吗,没来得及提交
class UnionFind(object):
def __init__(self):
self.uf = [i for i in range(100001)]
def find(self, p):
if self.uf[p] != p:
return self.find(self.uf[p])
else:
return p
def union(self, p, q):
proot = self.find(p)
qroot = self.find(q)
if proot == qroot:
return
elif proot<qroot:
self.uf[q] = proot
else:
self.uf[p] = qroot
uf = UnionFind()
half1 = nums[n//2:]
half2 = nums[:n//2]
for n1,n2 in zip(half1,half2):
if n1!=n2:
uf.union(n1,n2)
nums_set = {}
for i in range(len(uf.uf)):
if uf.uf[i] != i:
root = uf.find(i)
if root in nums_set:
nums_set[root].append(i)
else:
nums_set[root] = [i]
res = 0
for k,v in nums_set.items():
res += len(v)
print(res)
查看原帖
1 评论
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 在大厂上班是一种什么样的体验 #
10958次浏览 138人参与
# 你的mentor是什么样的人? #
50807次浏览 712人参与
# 程序员找工作至少要刷多少题? #
18892次浏览 248人参与
# 机械人避雷的岗位/公司 #
43537次浏览 300人参与
# 我现在比当时_,你想录用我吗 #
8814次浏览 111人参与
# 设计人如何选offer #
189466次浏览 868人参与
# 为了减少AI幻觉,你注入过哪些设定? #
4804次浏览 150人参与
# 你的秋招进行到哪一步了 #
2529747次浏览 23253人参与
# 机械人还在等华为开奖吗? #
311957次浏览 1582人参与
# 牛客AI体验站 #
6906次浏览 189人参与
# 12306一秒售罄,你抢到回家的票了吗? #
1997次浏览 47人参与
# 论秋招对个人心气的改变 #
11211次浏览 156人参与
# 一张图晒一下你的AI员工 #
5174次浏览 115人参与
# AI Coding的使用心得 #
4734次浏览 101人参与
# 刚入职的你踩过哪些坑 #
6948次浏览 128人参与
# 关于春招/暑期实习,你想知道哪些信息? #
7626次浏览 119人参与
# 应届生进小公司有什么影响吗 #
118321次浏览 1159人参与
# 晒晒你司的新年福利 #
8550次浏览 106人参与
# 找工作的破防时刻 #
254105次浏览 1963人参与
# 黄金这个事上,你学到了什么 #
1896次浏览 46人参与
查看11道真题和解析