🧩 LeetCode账户合并问题解析与实战:图论 + 并查集的完美结合
📌 题目描述
在日常生活中,我们经常会使用多个邮箱账户注册不同的平台服务。如果一个用户在不同的账户中使用了相同的邮箱地址,那么这些账户就很可能属于同一个人。基于这个背景,LeetCode 提出了一个实际应用场景的算法题:
给定一个 accounts
列表,格式如下:
[
["用户名", "邮箱1", "邮箱2", ..., "邮箱N"],
...
]
我们需要将属于同一个人的多个账户合并在一起。合并的依据是:如果两个账户之间有任意一个邮箱相同,则说明这两个账户属于同一个人。
合并完成后,输出格式应为:
- 每个合并后的账户仍然是一个列表,第一个元素是用户名,其余是 去重后按 ASCII 排序的邮箱列表。
- 所有账户可以以任意顺序返回。
🔍 示例
输入:
[
["John", "johnsmith@mail.com", "john00@mail.com"],
["John", "johnnybravo@mail.com"],
["John", "johnsmith@mail.com", "john_newyork@mail.com"],
["Mary", "mary@mail.com"]
]
输出: