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