九章算法 | Facebook 面试题:Set Union

撰文 | JZ
专栏 | 九章算法


题目描述

有一个集合组成的list,如果有两个集合有相同的元素,将他们合并。返回最后还剩下几个集合。


思路点拨

先遍历所有元素,以元素为key,元素所属的集合id为value(是一个集合)建立hashmap,再对于每一个元素,使用并查集将它所属的所有集合合并。最后剩下的就是答案。


考点分析

本题考察了做题者的思维能力,朴素的合并显然会超时,需要对每个集合的元素做一个映射,然后遍历每个集合的元素,每遍历一个元素就和该元素映射的集合进行合并。


九章参考程序

https://www. jiuzhang.com/solution/s et-union/


九章算法 | Facebook 面试题:Set Union