Leetcode - 128: Longest Consecutive Sequence
Given a list of numbers return length of longest consecutive elements
What's the question?
Given an unsorted array of integers nums, return the length of the longest consecutive elements sequence.
Let's look at an example
Input: nums = [100,4,200,1,3,2]
Output: 4
The task is to solve the problem in O(n)
time. If this wasn't the constrain we could have sorted the list in O(nlogn)
time and checked for consecutive numbers with two for
loops.
To achive that time complexity we will loop through the numbers and initialize a length
counter and check if number + length
is in the given nums
list. If it's there we will increase the lenght
counter by 1
.
We will keep on doing this unlit there is no number like number + length
available in the nums
list.
Now we will take the max
of length
and longest
variable and update our longest
variable. The longest
variable will be initialized to 0
at start.
Show me the code
def longestConsecutive(nums):
numsSet = set(nums)
longest = 0
for number in nums:
length = 0
while length + number in numsSet:
length += 1
longest = max(longest, length)
return longest
That's it for this blog, hope you found this helpful. You can connect with me on Twitter