题解 | #最小生成树#

最垃圾的算法,代码简单易懂
import java.util.*;
public class Solution {
    public int miniSpanningTree (int n, int m, int[][] cost) {
        HashSet<Integer> points=new HashSet<>();//不能用int
        int res=0;
        Arrays.sort(cost,0,cost.length,(a,b)-> {
            return a[2]-b[2]; //重载比较,按照边权递增
        });
        res+=cost[0][2];//首先将最小的边加入
        points.add(cost[0][0]);
        points.add(cost[0][1]);
        while(points.size()!=n){
            for(int i=1;i<cost.length;i++){
                //只要不是两者都在集合就行,否则形成环
                if(points.contains(cost[i][0])&&!points.contains(cost[i][1])||!points.contains(cost[i][0])&&points.contains(cost[i][1])){
                    res+=cost[i][2];
                    points.add(cost[i][0]);
                    points.add(cost[i][1]);
                    break;//找到一条边后必须从头开始找
                }
            }
        }
        return res;
    }
}


全部评论

相关推荐

05-29 20:34
门头沟学院 C++
KarlAllen:得做好直接春招的准备。学历差的话,一是面试要求会比学历好的严格不少,二是就算面试通过了也会被排序。总之暑期和秋招对于学历差的就是及其不友好
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
06-27 14:11
很喜欢小米的新车,校招薪资每月22k,攒多久能买?
测试糕手手:别看工资,先看现金流存款。有50W存款以上再考虑,车是消耗品,选适合自己的重要。你有钱就当我没说过
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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