九章算法 | Facebook 面试题:Set Union
撰文 | JZ
专栏 | 九章算法
题目描述
有一个集合组成的list,如果有两个集合有相同的元素,将他们合并。返回最后还剩下几个集合。
思路点拨
先遍历所有元素,以元素为key,元素所属的集合id为value(是一个集合)建立hashmap,再对于每一个元素,使用并查集将它所属的所有集合合并。最后剩下的就是答案。
考点分析
本题考察了做题者的思维能力,朴素的合并显然会超时,需要对每个集合的元素做一个映射,然后遍历每个集合的元素,每遍历一个元素就和该元素映射的集合进行合并。
九章参考程序
https://www. jiuzhang.com/solution/s et-union/