Problem: 128. 最长连续序列
文章目录
- 思路
- 解题方法
- 复杂度
- Code
思路
用set去重并且使用hash查找某个数存在与否
解题方法
遍历每个数,先判断这个数-1是否在hash表里面,如果在则跳过,否则从这个数开始一直枚举,一直到枚举到的数不在hash表里面。
复杂度
时间复杂度:
添加时间复杂度, 示例: O ( n ) O(n) O(n)
空间复杂度:
添加空间复杂度, 示例: O ( n ) O(n) O(n)
Code
class Solution:def longestConsecutive(self, nums: List[int]) -> int:numSet = set(nums)longest = 0for num in numSet:if num - 1 in numSet:continueelse:len = 1while num + 1 in numSet:num += 1len += 1longest = max(longest, len) return longest