leetcode228.汇总区间

187 阅读1分钟

228.汇总区间

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

输入: [0,2,3,4,6,8,9]
输出: ["0","2->4","6","8->9"]
解释: 2,3,4 可组成一个连续的区间; 8,9 可组成一个连续的区间。
class Solution:
    def summaryRanges(self, nums: List[int]) -> List[str]:
        def outputRange(start, end):
            if start == end:
                return str(start)
            return "{}->{}".format(start, end)

        if not nums:
            return []
        ans = []
        start = 0
        for i in range(0, len(nums) - 1):  # 中间存在割断
            if nums[i] + 1 != nums[i + 1]:
                ans.append(outputRange(nums[start], nums[i]))
                start = i + 1
        ans.append(outputRange(nums[start], nums[-1]))  # 中间不存在割断
        return ans
#  将逐一递增的整数序列化简为(起点->终点)收集起来即可。