这是一道哈希表的题,非常巧的想法,去看x-1是否存在来判断是不是开头。
class Solution {
public:
int longestConsecutive(vector<int>& nums) {
set<int> aSet;
for(auto x: nums)
{
if(aSet.find(x) == aSet.end())
aSet.insert(x);
}
int iLen = 0;
int iRes = 0;
for(auto x: aSet)
{
if(aSet.find(x - 1) != aSet.end()) continue;
int len = 0;
for(int i = x; aSet.find(i) != aSet.end() ;i++)
{
len++;
}
iRes = max(iRes, len);
}
return iRes;
}
};