题解 | #最小生成树Kruskal#

最小生成树

https://www.nowcoder.com/practice/735a34ff4672498b95660f43b7fcd628

class Solution {
    static bool cmp(vector<int>& v1, vector<int>& v2) {
        return v1[2] < v2[2];
    }
    vector<int> p;
    int find(int x)
    {
        if(x != p[x]) p[x] = find(p[x]);
        return p[x];
    }
  public:
    int miniSpanningTree(int n, int m, vector<vector<int>>& cost) {
        p = vector<int>(n + 1);
        for(int i = 0; i <= n; i ++)
        {
            p[i] = i;
        }
        sort(cost.begin(), cost.end(), cmp);
        int res = 0, cnt = 0;
        for(int i = 0; i < m; i ++)
        {
            int a = find(cost[i][0]), b = find(cost[i][1]);
            if(a != b)
            {
                p[a] = b;
                res += cost[i][2];
                cnt ++;
            }
        }
        if(cnt == n - 1) return res;
        return -1;
    }
};

全部评论

相关推荐

昨天 14:14
门头沟学院 Java
7.10投递7.15感谢信
投递地平线等公司7个岗位
点赞 评论 收藏
分享
Lorn的意义:你这标个前端是想找全栈吗?而且项目确实没什么含金量,技术栈太少了,边沉淀边找吧 现在学院本想就业好一点四年至少得高三模式两年加油吧
点赞 评论 收藏
分享
07-07 17:06
已编辑
深圳技术大学 golang
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-11 17:10
什么素质,我请问呢,要掉小珍珠了。。。又憋屈又生气
苍蓝星上艾露:给它们能的,一群dinner牛马挥刀向更弱者罢了。我写的开源求职AI co-pilot工具,优化你的简历,找到你匹配的岗位,定制你的简历,并让你做好面试准备https://github.com/weicanie/prisma-ai
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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