LeetCode #163. Missing Ranges
阿新 • • 發佈:2020-11-30
題目
解題方法
設定start = lower,遍歷nums,如果當前位置的數字nums[i]不等於start,就把nums[i]-1作為end,呼叫self.fun(start,end),把區間加進去。每次迴圈最後設定start = nums[i] + 1,最後一次迴圈結束後如果start != upper + 1,則需要將最後一個區間加進去。
時間複雜度:O(n)
空間複雜度:O(n)
程式碼
class Solution: def fun(self, start, end): if start == end: return str(start) else: return str(start) + "->" + str(end) def findMissingRanges(self, nums: List[int], lower: int, upper: int) -> List[str]: start = lower rat = [] for i in range(len(nums)): if nums[i] != start: rat.append(self.fun(start, nums[i] - 1)) start = nums[i] + 1 else: if start != upper + 1: rat.append(self.fun(start, upper)) return rat