题目描述
思路分析
哈希表
记录每个数是否出现,然后枚举数组中的每个起始点,注意要删除元素,否则可能会枚举重复元素。
代码实现
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 res=0;
for(int x:nums){
if(S.count(x)&&!S.count(x-1)){
int y=x;
S.erase(x);
while(S.count(y+1)) y++,S.erase(y);
res=max(res,y-x+1);
}
}
return res;
}
};