Given an unsorted array of integers, find the length of the longest consecutive elements sequence.
Your algorithm should run in O(n) complexity.
Example:
Input: [100, 4, 200, 1, 3, 2]
Output: 4
Explanation: The longest consecutive elements sequence is [1, 2, 3, 4]
. Therefore its length is 4.
#include <iostream>
#include <vector>
#include <set>
#include <algorithm>
using namespace std;
int longestConsecutive(vector<int>& nums) {
set<int> nums_set(nums.begin(), nums.end());
int ans = 0;
for(int i = 0; i < nums.size(); ++i){
if(!nums_set.count(nums[i] - 1)){
int cur = 1;
int temp = nums[i];
while(nums_set.count(temp + 1)){
cur++;
temp++;
}
ans = max(ans, cur);
}
}
return ans;
}