这道题的要点在于首先你必须排序。其次你必须去除掉重复数,然后再开始看排序的数。我采用了两两相减的方法出现了一堆的1,然后组合成字符串,通过正则来找出来所有的111.。的串。最后算长度,求最大。代码如下:
class Solution(object):
def longestConsecutive(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
import re
nums = list(set(nums))
nums.sort()
a = []
if nums == []:
return 0
if len(nums) == 1:
return 1
for i in range(len(nums) - 1):
a.append(nums[i + 1] - nums[i])
for i in range(len(a)):
a[i] = str(a[i])
a = ''.join(a)
b = re.findall('1+', a)
if b == []:
return 1
for i in range(len(b)):
b[i] = len(b[i])
return max(b) + 1