前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >简单并查集Golang实现

简单并查集Golang实现

原创
作者头像
dddyge
发布2022-07-27 20:13:38
5790
发布2022-07-27 20:13:38
举报
文章被收录于专栏:思考与总结思考与总结

网上看到的并查集都是一个新的结构体,并且有优化的手段,比如在结构体中携带秩,这样能起到路径压缩的作用。但是在Leetcode刷题时一般可以做一个简单版的并查集来ac,这里记录一下。

代码语言:javascript
复制
func find(parents []int, i int) int {
    if parents[i] != i {
        parents[i] = find(parents, parents[i])
    }
    return parents[i]
}

func union(parents []int, i, j int) {
     rootX, rootY := find(parents, i), find(parents, j)
     if rootX == rootY {
         return
     }
     parents[rootX] = rootY
}

以上就简单定义了并查集的并和查,这样只需要初始化一个数组,然后初始化对应的下标当作值,如果下表跟值相等就说明是一个集合。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档