并查集:在一些有N个元素的集合应用问题中,我们通常是在开始时让每个元素构成一个单元素的集合,然后按一定顺序将属于同一组的元素所在的集合合并。
python
class Solution:
def longestConsecutive(self, arr: List[int]):
n = len(arr)
res = 0
dic = {}
for data in arr:
tmp = 0
if data not in dic.keys():
tmp1, tmp2 = 0, 0
dic[data] = 1
if data-1 in dic.keys():
tmp1 = dic[data-1]
if data+1 in dic.keys():
tmp2 = dic[data+1]
tmp = tmp1 + tmp2 + 1
dic[data-tmp1] = tmp
dic[data+tmp2] = tmp
res = max(res, tmp)
return res