1 class Solution: 2 def summaryRanges(self, nums: List[int]) -> List[str]: 3 n = len(nums) 4 if n == 0: 5 return [] 6 pre = nums[0] 7 res = [[nums[0],nums[0]]] 8 for i in range(1,n): 9 cur = nums[i] 10 if cur - pre == 1: 11 pre = cur 12 res[-1][1] = cur 13 else: 14 pre = cur 15 res.append([cur,cur]) 16 result = [] 17 for j in range(len(res)): 18 begin,end = res[j][0],res[j][1] 19 if begin == end: 20 result.append(str(begin)) 21 else: 22 result.append(str(begin) + '->' + str(end)) 23 return result
算法思路:数组遍历。
先记录每一段连续区间的[起始值,结束值]的数组,再生成对应格式的字符串数组。