Files
cpp-flashcards/org/study_deck_02/dsa/intervals/0057-insert-interval.org
T
tomatocream 1dec88aaf2 feat: populate note files with problem descriptions and code stubs
Add populate-notes.mjs that fetches problem descriptions and
Python/C++ code stubs from LeetCode's GraphQL API. Populated
all 197 NeetCode 150 note files with:
- Problem description (examples, constraints)
- Python code stub (function signature)
- C++ code stub (function signature + includes)

API responses cached in leetcode/.cache/leetcode/ for instant re-runs.
2026-06-01 17:22:07 +08:00

1.8 KiB

TODO 0057. Insert Interval   medium

You are given an array of non-overlapping intervals intervals where intervals[i] = [start_{i}, end_{i}] represent the start and the end of the i^{th} interval and intervals is sorted in ascending order by start_{i}. You are also given an interval newInterval = [start, end] that represents the start and end of another interval.

Insert newInterval into intervals such that intervals is still sorted in ascending order by start_{i} 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 <= start_{i} <= end_{i} <= 10^{5}
  • intervals is sorted by start_{i} in ascending order.
  • newInterval.length == 2
  • 0 <= start <= end <= 10^{5}

TODO Approach

Write your approach here.

TODO Python

class Solution:
    def insert(self, intervals: List[List[int]], newInterval: List[int]) -> List[List[int]]:

TODO C++

class Solution {
public:
    vector<vector<int>> insert(vector<vector<int>>& intervals, vector<int>& newInterval) {
        
    }
};