feat(work): add insert-interval solution

This commit is contained in:
Prad Nukala committed 2026-09-30 11:25:43 -04:00
1 parent 19dedc52ce
commit b710c777c3
1 file changed
+60
+60
View File
@@ -0,0 +1,60 @@
"""
57. Insert Interval
Difficulty: Medium
https://leetcode.com/problems/insert-interval/
──────────────────────────────────────────────────
You are given an array of non-overlapping intervals intervals where
intervals[i] = [starti, endi] represent the start and the end of the
i^th interval and intervals is sorted in ascending order by starti.
You are also given an interval newInterval = [start, end] that
represents the start and end of another interval.
Two intervals are considered overlapping if they share at least one
point.
Insert newInterval into intervals such that intervals is still sorted
in ascending order by starti and intervals still does not have any
overlapping intervals (merge overlapping intervals if necessary).
Return intervals after the insertion.
Note that you don't need to modify intervals in-place. You can make a
new array and return it.
Example 1:
Input: intervals = [[1,3],[6,9]], newInterval = [2,5]
Output: [[1,5],[6,9]]
Example 2:
Input: intervals = [[1,2],[3,5],[6,7],[8,10],[12,16]], newInterval =
[4,8]
Output: [[1,2],[3,10],[12,16]]
Explanation: Because the new interval [4,8] overlaps with
[3,5],[6,7],[8,10].
Constraints:
• 0 <= intervals.length <= 10^4
• intervals[i].length == 2
• 0 <= starti <= endi <= 10^5
• intervals is sorted by starti in ascending order.
• newInterval.length == 2
• 0 <= start <= end <= 10^5
"""
class Solution:
def insert(self, intervals: list[list[int]], newInterval: list[int]) -> list[list[int]]: