题解 | #并查集的实现#

并查集的实现

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

全部评论

相关推荐

2024-12-29 19:48
河北科技大学 Java
没事就爱看简历:问题不在于简历:1、大学主修课程学那么多应用语言,作为计算机专业是很难理解的。 2、技能部分,每一个技能点的后半句话,说明对熟练,熟悉的标准有明显误会。 3、项目应该是校企合作的练习吧,这个项目你负责什么,取得了哪些成果都没有提及,只是列举了你认为有技术含量的点,而这些都有成熟的实现。
点赞 评论 收藏
分享
一天代码十万三:实习东西太少了,而且体现不出你业务,3个月不可能就这点产出吧,建议实习多写点,玩具项目面试官都不感兴趣的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务