ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

LeetCode 128 Longest Consecutive Sequence

2022-09-17 04:30:19  阅读:8  来源: 互联网

标签:cnt cur Sequence int nums ele ans 128 Consecutive


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

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有