并查集
class Solution:
def longestConsecutive(self, nums):
nums = set(nums)
bcj = {i: i for i in nums}
size = {i: 1 for i in nums}
def find(x):
if x != bcj[x]:
bcj[x] = find(bcj[x])
return bcj[x]
def union(x, y):
a, b = find(x), find(y)
if a != b:
bcj[a] = b
size[b] += size[a]
for i in nums:
if i + 1 in nums:
union(i, i + 1)
return max(size.values()) if size else 0