leetcode

Leetcode submissions
git clone git://git.laack.co/leetcode.git
Log | Files | Refs | README

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])]