🎉 One-stop destination for all your technical interview Preparation 🎉
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.
nums
.num-1
is present or not.num
we count num,num+1,num+2,...
consecutive elements.num+..
not found we update our ans
.return ans
.class Solution {
public:
int longestConsecutive(vector<int>& nums) {
int n = nums.size(), cnt=0, ans=0;
if(n==0)return 0;
unordered_set<int> st;
for(auto x:nums)st.insert(x);
for(auto x:nums){
if(st.count(x-1)!=1){
int currentNum = x;
cnt=1;
while(st.count(currentNum+1)){
currentNum++;
cnt++;
}
ans=max(ans,cnt);
}
}
return ans;
}
};