参考:代码随想录(http://www.programmercarl.com)
53. 寻宝
53. 寻宝(第七期模拟笔试) (kamacoder.com)
prim算法思路:
- 第一步,选距离生成树最近的节点
- 第二步,最近的节点加入生成树
- 第三步,更新非生成树节点到生成树的距离(即更新minDist数组)
最后,minDist数组也就是记录的是最小生成树所有边的权值,最小生成树里边的权值总和就是把 最后的minDist 数组累加一起。
kruskal算法思路:
1. 边的权值排序,要优先选最小的边加入到生成树里
2. 遍历排序后的边(用到并查集方法):如果边首尾的两个节点在同一个集合,说明如果连上这条边图中会出现环;如果边首尾的两个节点不在同一个集合,加入到最小生成树,并把两个节点加入同一个集合。总路径长度对不在同一个集合的边的长度不断累加。