Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Problem Link
https://leetcode.com/problems/longest-consecutive-sequence/description/
Solution
A solution that springs to mind is to sort the input
nums
in ascending order and traverse the sorted array.During the traversal, if the adjacent elements are consecutive, increment a counter.
If the current element is not consecutive to the previous element, reset the counter to 0 and start again.
This approach operations in
O(n * log n )
time complexity, but we're supposed to solve this problem inO(n)
.For a more efficient approach, consider traversing the unsorted
nums
directly.In each iteration, if the current element is the start of a sequence, determine how many consecutive elements are contained in
nums
staring from that element.An element is considered the start of a sequence if the value
element -1
is not present innume
.To do this with a time complexity of
O(n)
, use a hash set to store all elements ofnums