题目:最长连续序列
给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。
请你设计并实现时间复杂度为 O(n) 的算法解决此问题。
方案一:哈希表
class Solution {
public:int longestConsecutive(vector<int>& nums) {unordered_set<int>S;for(int i=0;i<nums.size();i++)S.insert(nums[i]);int max_len=0;for(auto t:S){if(!S.count(t-1)){int cnt=1;int t_=t;while(S.count(t_+1)){cnt++;t_++;}max_len=max(max_len,t_-t+1);}}return max_len;}
};