第八章 · 图与并查集 · Unit 12
把账户行视为节点,把共享邮箱视为连接证据。哈希表负责发现重复邮箱,并查集负责维护传递性的账户归并,最后必须按最终根节点重新聚合邮箱。
email → account
account → root
root → sorted emails
给定若干账户。每个账户的第一个字符串是姓名,其余字符串是邮箱。同一邮箱出现在两个账户中,能够确定这两个账户属于同一人;连接关系具有传递性。合并后,每组先放姓名,再放按字典序排列的邮箱。不同人可以同名,结果组的顺序不限。
1 ≤ accounts.length ≤ 10002 ≤ accounts[i].length ≤ 10题目真正要恢复的“同一人”。不能由姓名唯一确定。
邮箱是跨账户连接证据;共享邮箱触发 union。
并查集用根节点表示当前账户所属实体。
合并完成后,必须对每个邮箱重新 find 并按根收集。