Leetcode hot100 最长连续序列
题目描述
解析
代码
class Solution:def longestConsecutive(self, nums: List[int]) -> int:nums_set = set() # 把原始数据记录为setself.visited_set = set() # 加上一个是否访问过的判断, 因为可能有重复的数, 判断过就不判断了可以节省时间for num in nums:nums_set.add(num)max_length = 0for num in nums:if num in self.visited_set:continueif num-1 not in nums_set:start_num = nummax_length= max(max_length, self.count(start_num, nums_set))return max_length# 找到了start_num 就开始 判断 +1 的数是否在nums里面def count(self, num, nums):i = 0while num in nums:self.visited_set.add(num)num = num + 1i += 1return i