题目描述
给定一个未排序的整数数nums
,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。
请你设计并实现时间复杂度O(n)
的算法解决此问题。
解法一:并查集
这道题目可以用并查集来解决。初始状态下数组中的每个元素都是一个独立的集合,然后遍历数组,将当前元素相邻的
元素合并到一个集合,最后返回所有集合中元素个数最多的数量。这里要注意去重。
#include <vector>
#include <unordered_map>
class UnionFind {
public:
UnionFind(int num) {
for (int i = 0; i <...