Longest Consecutive Sequence | Problem No. 128 | LeetCode

Given an unsorted array of integers nums, return the length of the longest consecutive elements sequence.

Example 1: Input: nums = [100,4,200,1,3,2] Output: 4 Explanation: The longest consecutive elements sequence is [1, 2, 3, 4]. Therefore its length is 4.

Example 2: Input: nums = [0,3,7,2,5,8,4,6,0,1] Output: 9

Constraints: 0 <= nums.length <= 104 -109 <= nums[i] <= 109

Follow up: Could you implement the O(n) solution?

class Solution {
public:
    int longestConsecutive(vector<int>& nums) {
        int longest=0;
        unordered_set<int>s(nums.begin(),nums.end());
        for(int i=0;i<nums.size();i++)
        {
            if(s.find(nums[i]-1)==s.end())
            {
                int cur = nums[i];
                int streak=1;
                while(s.find(cur+1)!=s.end())
                {
                    cur+=1;
                    streak++;
                }
                longest = max(longest,streak);
            }
        }
        return longest;
    }
}