本题的目标是找到数组中最长的连续整数序列,并且要求算法的时间复杂度为 O(n)。可以使用 哈希集合(HashSet) 来实现高效查找,从而避免排序带来的 O(nlogn) 复杂度。
set 存储数组中的所有数,方便后续查询。给定一个未排序的整数数组nums,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。
请你设计并实现时间复杂度为O(n)的算法解决此问题。
输入共两行。
第一行为两个个整数n,代表数组nums的长度。
第二行为n个整数nums0,nums1,...,numsn−1,数字之间以空格分隔。
输出一个整数,代表答案。
输入
6
100 4 200 1 3 2
输出
4
最长数字连续序列是 [1,2,3,4]。它的长度为4。
输入
10
0 3 7 2 5 8 4 6 0 1
输出
9
输入
4
1 0 1 2
输出
3
0<=nums.length<=105
−109<=nums[i]<=109