题解 | #并查集的实现#

并查集的实现

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);
    }
};

全部评论

相关推荐

可以不说话:笔试a了3道半,今天说是挂了😭😭
投递汇丰科技等公司7个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务