Files
leetcode/work/1/Medium/Array/128.longest-consecutive-sequence.py
T

58 lines
1.1 KiB
Python

"""
128. Longest Consecutive Sequence
Difficulty: Medium
https://leetcode.com/problems/longest-consecutive-sequence/
──────────────────────────────────────────────────
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.
Example 1:
Input: nums = [100,4,200,1,3,2]
Output: 4
Explanation: The longest consecutive elements sequence is [1, 2, 3,
4]. Therefore its length is 4.
Example 2:
Input: nums = [0,3,7,2,5,8,4,6,0,1]
Output: 9
Example 3:
Input: nums = [1,0,1,2]
Output: 3
Constraints:
• 0 <= nums.length <= 10^5
• -10^9 <= nums[i] <= 10^9
"""
class Solution:
def longestConsecutive(self, nums: list[int]) -> int:
seen = set(nums)
best = 0
for n in seen:
if n - 1 in seen:
continue
length = 1
while length + n in seen:
length += 1
best = max(length, best)
return best