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;
    }
};

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/289982.html

(0)
上一篇 2022年9月17日
下一篇 2022年9月17日

相关推荐

发表回复

登录后才能评论