1.题目描述
给定一个排序的整数数组 nums ,其中元素的范围在 闭区间 [lower, upper] 当中,返回不包含在数组中的缺失区间。
示例:
输入: nums = [0, 1, 3, 50, 75], lower = 0 和 upper = 99,
输出: ["2", "4->49", "51->74", "76->99"]
2.解题思路
- 使用双指针
low
、num
,遍历nums
添加对应范围即可; - 需要先向
nums
尾部添加upper + 1
。
3.代码实现
class Solution(object):
def findMissingRanges(self, nums, lower, upper):
"""
:type nums: List[int]
:type lower: int
:type upper: int
:rtype: List[str]
"""
res = []
low = lower - 1
nums.append(upper+1)
for num in nums:
diff = num - low
if diff == 2:
res.append(str(num-1))
elif diff>2:
res.append(str(low+1)+ "->" + str(num-1))
low = num
return res