128. 最长连续序列
解法一:
class Solution:
def longestConsecutive(self, nums: List[int]) -> int:
hash_dict = {}
max_len = 0
for num in nums:
if num not in hash_dict:
left = hash_dict.get(num-1, 0) #左边区间长度,不存在则为0
right = hash_dict.get(num+1, 0) #右边区间长度,不存在则为0
cur_len = left + right + 1
max_len = max(max_len, cur_len)
#更新区间两端点
hash_dict[num] = cur_len #注意
hash_dict[num - left] = cur_len
hash_dict[num + right] = cur_len
#print(hash_dict, num, left, right)
return max_len二、并查集
最后更新于