当前位置: 首页 > news >正文

LeetCode 最小生成树题解

LeetCode 最小生成树题解

题目描述

给定一个带权无向图,计算最小生成树的权重和。

示例

输入:n = 4,edges = [[0,1,1],[0,2,2],[0,3,3],[1,2,1],[2,3,4]]
输出:4

解题思路

方法:Kruskal 算法

思路

  • 使用 Kruskal 算法计算最小生成树。
  • 将所有边按权重排序。
  • 遍历所有边,如果两个节点不在同一个集合中,则合并。

复杂度分析

  • 时间复杂度:O(E log E)。
  • 空间复杂度:O(V)。

代码实现

class UnionFind: def __init__(self, n): self.parent = list(range(n)) self.rank = [0] * n def find(self, x): if self.parent[x] != x: self.parent[x] = self.find(self.parent[x]) return self.parent[x] def union(self, x, y): px, py = self.find(x), self.find(y) if px == py: return False if self.rank[px] < self.rank[py]: px, py = py, px self.parent[py] = px if self.rank[px] == self.rank[py]: self.rank[px] += 1 return True def mst(n, edges): edges.sort(key=lambda x: x[2]) uf = UnionFind(n) weight = 0 for u, v, w in edges: if uf.union(u, v): weight += w return weight # 测试 def test_mst(): n = 4 edges = [[0, 1, 1], [0, 2, 2], [0, 3, 3], [1, 2, 1], [2, 3, 4]] print(mst(n, edges)) # 输出:4 if __name__ == "__main__": test_mst()

总结

最小生成树是 Kruskal 算法的典型应用,按权重排序边,合并不在同一集合的节点。

http://www.jsqmd.com/news/805053/

相关文章:

  • 构建多模型评测平台时利用Taotoken简化API管理与调用
  • SRWE终极指南:免费Windows窗口编辑器完全解析
  • 技术突破开源方案:img2latex-mathpix实现公式图像转LaTeX代码的本地化部署
  • 达林顿晶体管到底是什么?它是如何用微小电流驱动大功率负载的?
  • React Doctor:一键扫描代码库,输出健康评分与诊断建议,多方式助力代码优化!
  • 华为OD新系统机试真题 - 寻找孤立水站
  • 长期使用Taotoken聚合API对项目运维复杂度的实际影响
  • Taotoken官方价折扣活动对于高频用户的实际成本影响分析
  • Jsxer:Adobe ExtendScript JSXBIN反编译终极指南与深度解析
  • 深度解析 DdddOcr:开源离线验证码识别技术实战指南
  • 微信消息自动转发终极指南:5分钟实现跨群智能消息同步
  • Amphenol ICC RJE1Y33A83162401工业网线组件解析
  • 厚街汽修哪家值得推荐:秒杀汽修品质一流 - 13724980961
  • 上午题_程序设计语言
  • 厚街开业花篮哪家值得推荐:秒杀开业花篮新鲜度高 - 19120507004
  • 3分钟永久激活方案:KMS_VL_ALL_AIO智能脚本全解析
  • WebNav Pro个人网址导航系统 包含多种导航站样式
  • 终极免费文档下载指南:如何用kill-doc脚本轻松获取百度文库、豆丁网等30+平台资源
  • 三维扫描赋能锤爪旋刀磨损检测,助力农机产业提质增效
  • 工程师幽默竞赛:从技术梗到团队文化的创意表达
  • 厚街外墙翻新哪家值得推荐:秒杀外墙翻新口碑之选 - 17322238651
  • LeetCode 路径压缩优化题解
  • Amphenol ICC RJE1Y13C05152401工业线束解析与选型替代思路
  • 【Autoware】从零到一:手把手教你搭建自动驾驶开发环境
  • 别再手动画ROI了!Halcon中write_region/read_region实现区域复用与项目配置管理
  • linux学习进展 守护进程
  • 长期使用Taotoken Token Plan套餐带来的成本控制感受
  • Midjourney Fresco提示词工程实战手册(Fresco专属Prompt公式库v2.3)
  • 【紧急更新】DeepSeek v2.5垂直搜索API重大变更预警:3类兼容性陷阱+2种平滑迁移路径(含自动检测脚本)
  • AutoDock Vina终极指南:为什么它是分子对接的首选工具?