这种题的关键处在于:巧妙地添加一个元素,避免了遍历后的特殊处理。这是一类题目,一定要记着对最后一个元素做判断。
1. 题目
2. 分析
本题比较简单,直接遍历数组内的元素,然后将结果写入到res数组中。有一点需要注意:为了减少特殊处理,在原数组后面追加了一个nums[-1]+2
,从而达到了简化的目的。
3. 代码
class Solution:def summaryRanges(self, nums: List[int]) -> List[str]:res = []if len(nums)<2:for i in nums:res.append(str(i))return respre = nums[0]start = nums[0]# 这里为了简化计算,直接在其后添加了一个数值nums.append(nums[-1]+2)for i in range(1, len(nums)):if nums[i] == pre + 1:pre = nums[i]else:if start == pre:res.append(f"{start}")else:res.append(f"{start}->{pre}") start = nums[i]pre = nums[i]return res