题目大意
给定一组无序的整数,找出其中连续整数的最长长度。
注意点:
算法时间复杂度为O(n)
解题思路
哈希表,遍历每个数,从中间扩展左右两边,不断刷新最长长度
代码
class Solution(object):
def longestConsecutive(self, nums):
""" :type nums: List[int] :rtype: int """
numset, maxlen = set(nums), 0
for n in set(nums):
currlen = 1
tmp = n + 1
while tmp in numset:
currlen += 1
numset.discard(tmp) # 删去
tmp += 1
tmp = n - 1
while tmp in numset:
currlen += 1
numset.discard(tmp)
tmp -= 1
maxlen = max(maxlen, currlen)
return maxlen