163.Missing Ranges
Given a sorted integer array where the range of elements are in the inclusive range [lower,upper], return its missing ranges.
For example, given[0, 1, 3, 50, 75],lower= 0 andupper= 99, return["2", "4->49", "51->74", "76->99"].
Method 1 one loop, O(n) time, O(1) space.
- Set a lower bound of lower-1 and upper bound of upper + 1 to make the comparson inclusive.
- for each element, if it's greater than the current lower + 2, then we update result list.
class Solution(object):
def findMissingRanges(self, nums, lower, upper):
nums.append(upper+1)
prev = lower - 1
res = []
for i in nums:
if i == prev + 2:
res.append(str(i-1))
elif i > prev + 2:
res.append(str(prev+1) + '->' + str(i-1))
prev = i
return res