Skip to main content

57. Insert Interval

https://leetcode.com/problems/insert-interval/

Python

  • Time: O(n)
  • Space: O(n+1)
class Solution:
def insert(self, intervals: List[List[int]], newInterval: List[int]) -> List[List[int]]:
if len(intervals) < 1:
return intervals + [newInterval]

result = []
start, end = newInterval

for interval in intervals:
if interval[1] < start or interval[0] > end:
result.append(interval)
continue

start = min(interval[0], start)
end = max(interval[1], end)
result.append([start, end])

# TODO: should able to finish without sort
result.sort(key=lambda pair: pair[0])

return result