leetcode128. 最长连续序列

1、题目

https://leetcode-cn.com/problems/longest-consecutive-sequence/

2、题意

题解1:hash表
当当前该数前面没有元素时 判断从这个数开始往后连续的最大个数 每一次删除在set中的这一段连续的数

class Solution {
     
public:
    int longestConsecutive(vector<int>& nums) {
     
        int res = 0;
        unordered_set<int> s;
        for(auto &x:nums)
            s.insert(x);
        for(auto &x:nums)
        {
     
            if(s.count(x)&&!s.count(x-1))
            {
     
                int y = x;
                s.erase(x);
                while(s.count(y+1))
                {
     
                    s.erase(y+1);
                    y++;
                }
                res = max(res,y+1-x);
            }
        }
        return res;
    }
};

你可能感兴趣的:(leetcode)