Leetcode 128 Solution

This article provides solution to leetcode question 128 (longest-consecutive-sequence)

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

Solution

class Solution {
public:
    int longestConsecutive(vector<int>& nums) {
        unordered_set<int> s;

        for (auto num : nums)
            s.insert(num);

        int max_count = 0;
        for (auto num : nums)
        {
            if (s.find(num) == s.end())
                continue;

            s.erase(num);
            int count = 1;

            int lnum = num - 1;
            while (s.find(lnum) != s.end())
            {
                s.erase(lnum--);
                count++;
            }

            int rnum = num + 1;
            while (s.find(rnum) != s.end())
            {
                s.erase(rnum++);
                count++;
            }

            max_count = max(max_count, count);
        }

        return max_count;
    }
};