哈希表
class Solution {
public:int longestConsecutive(vector<int>& nums) {//set记录并且去重nums中的数unordered_set<int>set;for(int i=0;i<nums.size();i++){set.insert(nums[i]);}int result=0;//遍历所有数for(auto i=set.begin();i!=set.end();i++){//如果这个数不是开头,则跳过,即num的前一个数不存在//是开头,则计数这个数开头的序列长度int num=*i;if(!set.count(num-1)){int currentnum=num;int count=1;while(set.count(currentnum+1)){//是开头,则计数这个数开头的序列长度currentnum+=1;count+=1;}result=max(result,count);}}return result;}
};