每日一题力扣228

给定一个无重复元素的有序整数数组 nums 。

返回 恰好覆盖数组中所有数字 的 最小有序 区间范围列表。也就是说,nums 的每个元素都恰好被某个区间范围所覆盖,并且不存在属于某个范围但不属于 nums 的数字 x 。

列表中的每个区间范围 [a,b] 应该按如下格式输出:

"a->b" ,如果 a != b
"a" ,如果 a == b

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/summary-ranges
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

class Solution:
    def summaryRanges(self, nums: List[int]) -> List[str]:
        res=[]
        i=0
        while i <len(nums):
            if i+1<len(nums)and nums[i]+1==nums[i+1]:
                t=i#记录下最左边的数字
                while i+1<len(nums)and nums[i]+1==nums[i+1]:
                    i+=1#直到找到不相等的数为止
                res.append("{}->{}".format(nums[t],nums[i]))
            else:
                res.append(str(nums[i]))#如果一开始就不连等,那么久把自己加进去住,注意是字符串。
            i+=1
        return res
原文地址:https://www.cnblogs.com/liuxiangyan/p/14607120.html