LeetCode:228. 汇总区间
1、题目描述
给定一个无重复元素的有序整数数组,返回数组区间范围的汇总。
示例 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 可组成一个连续的区间。
2、题解
2.1、解法一
class Solution(object): def summaryRanges(self, nums): """ :type nums: List[int] :rtype: List[str] """ n = len(nums) ret = [] if n == 0: return [] elif n == 1: ret.append("%s" % nums[0]) return ret i = 0 while i < n-1: j = i while j< n-1 and nums[j] + 1 == nums[j+1]: j += 1 print(i,j) if i==j: ret.append("%s" % nums[j]) else: ret.append("%s->%s"%(nums[i],nums[j])) i =j+1 print(j) j = j+1 if j== n-1: ret.append("%s"%nums[j]) elif j< n-1: ret.append("%s->%s" % (nums[j], nums[n-1])) print(ret) return ret