leetcode 684. 冗余连接(并查集)

leetcode 684. 冗余连接(并查集)_第1张图片

	class unionfind{
public:
    vectorfather;
    unionfind(const int &num){//num表示元素的个数
        for(int i = 0; i < num; i++){
            father.push_back(i);//箭头指向自己
        }
    }
    int find(const int &n){
        //递归
        if(father[n] == n)
            return n;
        father[n] = find(father[n]);//路径压缩版本
        return father[n];
    }
    bool myunion(const int &a,const int &b){
        if(father[a]==b||father[b]==a)return true;//判断是否是一个集合元素
        int fa = find(a);
        int fb = find(b);
        bool res=fa==fb;
        father[fb] = fa;
        return res;
    }
};

class Solution {
public:
    vector findRedundantConnection(vector>& edges) {
       int n=edges.size();
       vectorans(2,0);
       unionfind F(n+1);
       for(int i=0;i

你可能感兴趣的:(并查集)