哈希表
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;
}
};