leetcode 261 以图判树

leetcode 261 以图判树

题目

img

并查集

img

img

模板

class UF {
public:
    UF(int size) {
        father.resize(size);
        for (int i = 0; i < size; ++i) {
            father[i] = i;
        }
    }
    int find (int x) {
        return x == father[x] ? x : father[x] = find(father[x]);
    }
    void connect (int x, int y) {
        int xx = find(x);
        int yy = find(y);
        if (xx == yy) { return; }
        if (xx < yy) {
            father[yy] = xx;
        } else {
            father[xx] = yy;
        }
    }
    bool same(int x, int y) {
        return find(x) == find(y);
    }
private:
    vector<int> father;
};

代码

class Solution {
public:
    bool validTree(int n, vector<vector<int>>& edges) {
        UF uf(n);
        if (edges.size() != n-1) {
            return false;
        }
        for (auto& e : edges) {
            int v1 = e[0], v2 = e[1];
            int v1_par = uf.find(v1);
            int v2_par = uf.find(v2);
            if (v1_par == v2_par) {
                return false;
            }
            uf.connect(v1, v2);
        }
        return true;
    }
};

posted on   LambdaQ  阅读(10)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示