Missing Range
对于中间的范围,我们只要使用一个insert函数来实现对于起点和终点的大小判断从而实现不同的范围表示即可,而对于左右边界情况,我们需要比较lower,upper和数组头尾坐标的大小从而确定不同的情况,对于此题输入样式来看,左右都是尽量往外取就行
class Solution(object):
def findMissingRanges(self, nums, lower, upper):
"""
:type nums: List[int]
:type lower: int
:type upper: int
:rtype: List[str]
"""
result = []
if not nums:
self.insert(result, lower, upper)
return result
if lower < nums[0]:
self.insert(result, lower, nums[0] - 1)
for i in xrange(len(nums) - 1):
self.insert(result, nums[i] + 1, nums[i + 1] - 1)
if upper > nums[-1]:
self.insert(result, nums[-1] + 1, upper)
return result
def insert(self, res, start, end):
if start < end:
res.append(str(start) + '->' + str(end))
elif start == end:
res.append(str(start))