(十七)王道机试指南___并查集

本文介绍了并查集的基本操作,包括判断元素是否在同一集合及合并集合,并通过畅通工程和More is better两道题目进行实战解析,讲解了路径压缩和查找根节点的方法,以及在解题过程中的注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

算例一(畅通工程)

  • 题目描述

  • 解题思路

①判断两个数字是否在同一个集合中:我们可用判断他们是否在一棵树中,即把每个节点用双亲法保存,然后求两个节点的根,若两个根相同则说明两个数在同一个集合中

②合并两个集合:让分别代表两个集合的树合并

③并查集中主要的一个问题就是,如何查找一个结点所在树的根,采取的方法是,不断查找结点的双亲结点知道找到的双亲结点不存在的结点为止,该结点就是根结点

④为了避免②中每次合并树造成的树的深度越来越大的问题,可以在每次查找每个特定结点的根结点的时候,把其与根节点之间的所有结点都直接指向根节点,以次来压缩路径,减少树高,减小时间消耗

⑤关于本题:每两个有道路的城市构

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值