并查集计算相似文件的类别数(朋友圈个数)

# -*- coding:utf-8 -*-

def find_root(x, parent):
    xroot = x
    while parent[xroot] != -1:
        xroot = parent[xroot]
    return xroot

def union_vertex(x, y, parent):
    xroot = find_root(x, parent)
    yroot = find_root(y, parent)
    if xroot != yroot:
        parent[xroot] = yroot

def init_parent(edges):
    nodes = []
    for item in edges:
        nodes.extend(item)
    parent = [-1] * len(set(nodes))
    return parent

edges = [[0,1],[2,3],[3,4],[4,5],[5,1],[6,7]]
parent = init_parent(edges)

for pair in edges:
    x = pair[0]
    y = pair[1]
    union_vertex(x, y, parent)

print(parent)
print(parent.count(-1))
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • MOO音乐 MOO音乐是腾讯出品的一款音乐App,支持安卓和苹果版本。 它界面简洁,风格唯美,颜值很高;它的整体风...
    曾嘉慧阅读 2,286评论 0 0
  • 教育孩子是一门艺术。 生活中你是否经常听到有的家长对不听话的孩子说,一天供你吃供你喝,你还净事等类似的话。 存在这...
    文会帮阅读 3,483评论 0 8
  • 2012年3月21日 今夜好大的风,吹得阳台上杂物哗啦响个不停,我猜,风过之后,明日当有暖阳。 流年悲催...
    明月劫阅读 1,387评论 0 0

友情链接更多精彩内容