题解 | #并查集的实现#

并查集的实现

https://www.nowcoder.com/practice/e7ed657974934a30b2010046536a5372

  1. 初始化:自己指向自己
  2. 合并:合并操作都发生在根上
  3. 判连通:父节点相同,则连通

class UnionFind {
    vector<int> pre;
public:
    UnionFind(int n) {
        pre.resize(n);
        for(int i = 0; i < n; i++)
            pre[i] = i;
    }
    int root(int x) {
        return pre[x] = (x == pre[x]) ? x : root(pre[x]);
    }

    void union_(int a, int b) {
        pre[root(a)] = root(b);
    }

    bool find_(int a, int b) {
        return root(a) == root(b);
    }
};

全部评论

相关推荐

06-20 17:42
东华大学 Java
凉风落木楚山秋:要是在2015,你这简历还可以月入十万,可惜现在是2025,已经跟不上版本了
我的简历长这样
点赞 评论 收藏
分享
06-25 09:33
厦门大学 Java
程序员饺子:现在日常估计没啥hc了,等到八月多估计就慢慢有了。双九✌🏻不用焦虑的
投递快手等公司7个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务