Skip to content
prdlk
Esc
↑↓navigate↵open⌘Jpreview
On this page

128. Longest Consecutive Sequence

Given an unsorted array of integers nums, return the length of the longest consecutive elements sequence

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

Solution

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

Last updated on

Was this page helpful?