leetcode 128.最长连续序列(python)
给定一个未排序的整数数组,找出最长连续序列的长度。
要求算法的时间复杂度为 O(n)。
示例:
输入: [100, 4, 200, 1, 3, 2]
输出: 4
解释: 最长连续序列是 [1, 2, 3, 4]。它的长度为 4。
哈希
class Solution(object):
def longestConsecutive(self, nums):
# 哈希
nums = set(nums)
max_length = 0
while nums:
h = l = nums.pop()
while h + 1 in nums:
h = h + 1
nums.remove(h)
while l - 1 in nums:
l = l - 1
nums.remove(l)
max_length = max(max_length, h - l + 1)
return max_length