leetcode

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

commit a42fd11f30666f5f8e5a69a0fa10c23489402f2e
parent 7882c9ec00720673b22973d53104159f3f10917f
Author: Andrew Laack <andrew@laack.co>
Date:   Wed,  9 Jul 2025 18:38:50 -0500

Completed insert interval

Diffstat:
Ainsert-interval/insert-intervalV2.py | 33+++++++++++++++++++++++++++++++++
1 file changed, 33 insertions(+), 0 deletions(-)

diff --git a/insert-interval/insert-intervalV2.py b/insert-interval/insert-intervalV2.py @@ -0,0 +1,33 @@ +class Solution: + def insert( + self, intervals: List[List[int]], newInterval: List[int] + ) -> List[List[int]]: + + original_length = len(intervals) + for i in range(0, len(intervals)): + if newInterval[0] < intervals[i][0]: + intervals.insert(i, newInterval) + + if len(intervals) == original_length: + intervals.append(newInterval) + + i = 0 + + while i < len(intervals) - 1: + if self.overlapping(intervals[i], intervals[i + 1]): + merged = self.merge(intervals[i], intervals[i + 1]) + intervals[i] = merged + intervals.pop(i + 1) + i -= 1 + i += 1 + + return intervals + + # interval1[0] <= interval2[0] + def overlapping(self, interval1, interval2): + if interval1[1] >= interval2[0]: + return True + + # interval1[0] <= interval2[0] + def merge(self, interval1, interval2): + return [interval1[0], max(interval1[1], interval2[1])]