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

results matching ""

    No results matching ""