算法认知学习实验室

第 8 章 · 图与并查集 · Unit 11

仅本次页面有效
08·11
冗余连接在线判环 · Union-Find
LeetCode #684 · Redundant Connection

一条边到来时,先问:它的两端已经连通了吗?

并查集不需要保存完整路径。它把此前接受的边压缩成“属于哪个连通分量”这一份状态:若新边两端的代表元相同,既有路径与新边共同闭合成环,这条边就是冗余连接。

11
从合并到在线判环

Unit 10 用成功合并次数统计省份;本单元把 union 的失败转化为答案。

已恢复上次学习现场

本单元状态契约

find(a) == find(b) 当且仅当节点 a 与 b 已经被此前接受的边连通。每条边必须先查询两端根,再决定合并或返回。

六阶段路线

图模型 → 朴素判环 → 在线并查集 → 不变量与错误 → Python 联动 → #990 约束迁移。

树 + 一条边

原图从一棵树出发,多加入一条无向边,因此会出现且只出现一个环。

在线处理

边按输入顺序到达,只使用此前边形成的状态判断当前边。

冗余边

删除后仍能保持全部节点连通且无环的边。本题要求返回输入中最后出现的可删除边。

Union 失败

两端根相同,无需合并;当前边闭合环并成为答案。