判斷連續數的範圍,遍歷判斷,很簡單:
version 1:
class Solution(object):
def summaryRanges(self, nums):
"""
:type nums: List[int]
:rtype: List[str]
"""
if len(nums) == 0:
return nums
if len(nums) == 1:
return [str(nums[0])]
start = 0
res = []
for i in range(1,len(nums) - 1):
if nums[i+1] - nums[i] != 1:
end = i
if end - start < 1:
res.append(str(nums[i]))
else:
res.append(str(nums[start])+'->'+str(nums[end]))
start = i+1
if nums[-1] - nums[-2]!=1:
res.append(str(nums[-1]))
else:
res.append(str(nums[start])+'->'+str(nums[-1]))
return res
version 2:
class Solution(object):
def summaryRanges(self, nums):
"""
:type nums: List[int]
:rtype: List[str]
"""
if len(nums) == 0:
return nums
if len(nums) == 1:
return [str(nums[0])]
start = 0
end = 0
res = []
for i in range(1,len(nums)):
if nums[i] - nums[i-1] == 1:
end = i
else:
res+=[str(nums[i-1])] if end-start<1 else [str(nums[start])+
'->'+str(nums[end])]
start = i
res+=[str(nums[-1])] if nums[-1] - nums[-2]!=1 else [str(nums[start])+
'->'+str(nums[-1])]
return res