insert-intervalV2.py (1017B)
1 class Solution: 2 def insert( 3 self, intervals: List[List[int]], newInterval: List[int] 4 ) -> List[List[int]]: 5 6 original_length = len(intervals) 7 for i in range(0, len(intervals)): 8 if newInterval[0] < intervals[i][0]: 9 intervals.insert(i, newInterval) 10 11 if len(intervals) == original_length: 12 intervals.append(newInterval) 13 14 i = 0 15 16 while i < len(intervals) - 1: 17 if self.overlapping(intervals[i], intervals[i + 1]): 18 merged = self.merge(intervals[i], intervals[i + 1]) 19 intervals[i] = merged 20 intervals.pop(i + 1) 21 i -= 1 22 i += 1 23 24 return intervals 25 26 # interval1[0] <= interval2[0] 27 def overlapping(self, interval1, interval2): 28 if interval1[1] >= interval2[0]: 29 return True 30 31 # interval1[0] <= interval2[0] 32 def merge(self, interval1, interval2): 33 return [interval1[0], max(interval1[1], interval2[1])]