Missing Ranges – Python 3 (Week 10 – 13)

class Solution:
    """
    @param: nums: a sorted integer array
    @param: lower: An integer
    @param: upper: An integer
    @return: a list of its missing ranges
    """
    
    
    def helper(self, left_point, right_point):
        if left_point == right_point:
            return str(left_point)
        else:
            return str(left_point) + "->" + str(right_point)
        
    
    
    def findMissingRanges(self, nums, lower, upper):
        # write your code here
        ans = []
        if len(nums) == 0:
            ans.append(self.helper(lower, upper))
            return ans
        pre_point = lower - 1
        for point in nums:
            if pre_point != point and pre_point + 1 != point:
                ans.append(self.helper(pre_point + 1, point - 1))
            pre_point = point
        if nums[-1] < upper:
            ans.append(self.helper(nums[-1] + 1, upper))
        return ans

Time O(n). Space O(1).

Leave a comment

Design a site like this with WordPress.com
Get started