LeetCode 128 Longest Consecutive Sequence
作者:互联网
Given an unsorted array of integers nums
, return the length of the longest consecutive elements sequence.
You must write an algorithm that runs in \(O(n)\) time.
Solution
既然不能排序,那就用 \(set\) 将元素全部存进去。从所有可能序列中的最小开始遍历,逐次递增,然后更新最大值
点击查看代码
class Solution {
private:
unordered_set<int> s;
int ans=0;
public:
int longestConsecutive(vector<int>& nums) {
for(auto ele:nums){
s.insert(ele);
}
for(auto ele:nums){
int cur = ele;
if(!s.count(cur-1)){
int cnt=1;
while(s.count(cur+1)){
cur++;cnt++;
}
ans=max(ans, cnt);
}
}
return ans;
}
};
标签:cnt,cur,Sequence,int,nums,ele,ans,128,Consecutive 来源: https://www.cnblogs.com/xinyu04/p/16701806.html