这道题的要点在于首先你必须排序。其次你必须去除掉重复数,然后再开始看排序的数。我采用了两两相减的方法出现了一堆的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
本文探讨了排序、去重及序列分析技巧,利用两两相减法识别重复元素,并通过正则表达式查找特定模式。
170

被折叠的 条评论
为什么被折叠?



