Menu
CoddyTech

Longest Consecutive Sequence

中等哈希python iconjava iconcpp iconc iconjs icon+10

你会得到一个顺序不固定的整数数组 nums。连续序列是一组值 x、x+1、x+2 等,这些值都出现在 nums 中。返回最长连续序列的长度。重复出现的值只计一次。

函数

longestConsecutive(nums: integer-array) → integer
numsinteger-array
整数,顺序不限,可以重复
返回值integer
nums 中连续出现的值构成的最长连续段的长度

约束条件

  • 1 ≤ nums.length ≤ 104
  • -109 ≤ nums[i] ≤ 109
  • 值可以重复。数组中的位置不重要,重要的是其中包含哪些值。

示例

输入
nums = [40, 4, 39, 1, 3, 2, 41]
输出
4
解释
1、2、3 和 4 都存在,构成了长度为 4 的连续序列,尽管它们分散在数组中。另一段连续序列从 39 到 41,只有 3 个值。
challenge icon

进阶

假设值一个接一个地到来,每收到一个值后,你都必须报告目前为止最长的连续段。你能否在每个值的平均处理时间为 O(1) 的情况下,随时更新答案?

重置代码
def longestConsecutive(nums):
    # 在这里编写代码

测试 #1

测试 #2

测试 #3

参数

nums = [40, 4, 39, 1, 3, 2, 41]

预期输出

4