class Solution:
# @param {integer[]} nums
# @return {integer}
def longestConsecutive(self, nums):
"""
"if there is no limit on the time complexity, we can sort the array firstly, for which the time complexity is O(nlogn)"
if not nums:
return 0
nums.sort()
sz,ma=1,0
for i in range(1,len(nums)):
if nums[i]==nums[i-1]+1:
sz+=1
elif nums[i]!=nums[i-1]:
ma=max(ma,sz)
sz=1
return max(ma,sz)
"""
"""
dic,left,right,sz,ma={},0,0,0,0
for i in range(len(nums)):
if nums[i] not in dic:
if nums[i]-1 in dic:
left=dic.get(nums[i]-1)
else: left=0
if nums[i]+1 in dic:
right=dic.get(nums[i]+1)
else: right=0
sz=left+right+1
dic[nums[i]]=sz
dic[nums[i]-left]=sz
dic[nums[i]+right]=sz
ma=max(ma,sz)
else: continue
return ma
"""
dic,ma={},0
for i in range(len(nums)):
if nums[i] in dic:
continue
begin,end=nums[i],nums[i]
dic[nums[i]]=1
if nums[i]+1 in dic:
end=nums[i]+dic.get(nums[i]+1)
if nums[i]-1 in dic:
begin=nums[i]-dic.get(nums[i]-1)
ma=max(ma,end-begin+1)
dic[end]=end-begin+1
dic[begin]=end-begin+1
return ma
# @param {integer[]} nums
# @return {integer}
def longestConsecutive(self, nums):
"""
"if there is no limit on the time complexity, we can sort the array firstly, for which the time complexity is O(nlogn)"
if not nums:
return 0
nums.sort()
sz,ma=1,0
for i in range(1,len(nums)):
if nums[i]==nums[i-1]+1:
sz+=1
elif nums[i]!=nums[i-1]:
ma=max(ma,sz)
sz=1
return max(ma,sz)
"""
"""
dic,left,right,sz,ma={},0,0,0,0
for i in range(len(nums)):
if nums[i] not in dic:
if nums[i]-1 in dic:
left=dic.get(nums[i]-1)
else: left=0
if nums[i]+1 in dic:
right=dic.get(nums[i]+1)
else: right=0
sz=left+right+1
dic[nums[i]]=sz
dic[nums[i]-left]=sz
dic[nums[i]+right]=sz
ma=max(ma,sz)
else: continue
return ma
"""
dic,ma={},0
for i in range(len(nums)):
if nums[i] in dic:
continue
begin,end=nums[i],nums[i]
dic[nums[i]]=1
if nums[i]+1 in dic:
end=nums[i]+dic.get(nums[i]+1)
if nums[i]-1 in dic:
begin=nums[i]-dic.get(nums[i]-1)
ma=max(ma,end-begin+1)
dic[end]=end-begin+1
dic[begin]=end-begin+1
return ma
本文介绍了一种寻找数组中最长连续整数序列的算法。通过排序和哈希表两种方法实现,详细展示了每种方法的步骤及时间复杂度分析。
517

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



