Longest Consecutive Sequence
Given an unsorted array of integers nums, return the length of the longest consecutive elements sequence.
int longestConsecutive(vector<int>& nums) {
set<int> hashSet; //declared a set
for(int num: nums){
hashSet.insert(num); //inserting all array element in the set
}
int longestStreak=0;
for(int num: nums){
if(!hashSet.count(num-1)){ //if the number does not has the previous number the update
int currentNum=num;
int currentStreak=1;
while(hashSet.count(currentNum+1)){ //update the streak
currentNum+=1;
currentStreak+=1;
}
longestStreak=max(longestStreak,currentStreak); //maximum streak
}
}
return longestStreak;
}
Comments
Post a Comment