classSolution{public:intlongestConsecutive(vector<int>& nums){int len = nums.size();if(len==0)return0;sort(nums.begin(),nums.end());for(auto it : nums)
cout<<it<<" ";
cout<<endl;int cur_len =1;int res =1;int cur_num = nums[0];for(int i=1; i<len; i++){while(i<len && nums[i]== cur_num){
i++;}if(i<len && nums[i]== cur_num +1){
cur_len +=1;
res =max(res, cur_len);}else{
cur_len =1;}
cur_num = nums[i];}return res;}};
使用hash表
classSolution{public:intlongestConsecutive(vector<int>& nums){
unordered_set<int>myset(nums.begin(), nums.end());int res =0;for(int num : myset){// 如果num-1在集合中,说明已经被使用过,直接跳过if(myset.contains(num-1))continue;// 否则,获取以num为起点的序列长度int y = num +1;while(myset.contains(y)){
y++;}
res =max(res, y-num);}return res;}};