其他分享
首页 > 其他分享> > LeetCode 128 Longest Consecutive Sequence

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