leetcode 228. 汇总区间

给定一个无重复元素的有序整数数组,返回数组区间范围的汇总。

示例 1:

输入: [0,1,2,4,5,7]
输出: ["0->2","4->5","7"]
解释: 0,1,2 可组成一个连续的区间; 4,5 可组成一个连续的区间。

示例 2:

输入: [0,2,3,4,6,8,9]
输出: ["0","2->4","6","8->9"]
解释: 2,3,4 可组成一个连续的区间; 8,9 可组成一个连续的区间。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class Solution:
def summaryRanges(self, nums):
"""
:type nums: List[int]
:rtype: List[str]
"""
if not nums:
return []
nums = nums + [nums[-1]]
num1 = str(nums[0])
num2=str(nums[0])
res = []
for i in range(1,len(nums)):
if nums[i] - nums[i-1] == 1:
num2 = str(nums[i])
continue
else:
if num1 == num2:
res.append(num1)
else:
res.append(num1+'->'+num2)
num1 = str(nums[i])
num2 = str(nums[i])
return res