Insert Interval
Problem statement
You are given a list of non-overlapping closed intervals intervals, sorted by start time, and one closed interval newInterval.
Insert newInterval so that the result remains sorted and contains no overlapping intervals. Merge every interval that overlaps the inserted interval, and return the resulting list.
Function
insertInterval(intervals: int[][], newInterval: int[]) → int[][]Examples
Example 1
intervals = [[1,3],[6,9]]newInterval = [2,5]return = [[1,5],[6,9]]The new interval overlaps [1,3], so they merge into [1,5]. The interval [6,9] remains separate.
Example 2
intervals = [[1,2],[3,5],[6,7],[8,10],[12,16]]newInterval = [4,8]return = [[1,2],[3,10],[12,16]]The new interval overlaps [3,5], [6,7], and [8,10], producing the merged interval [3,10].
Example 3
intervals = []newInterval = [5,7]return = [[5,7]]With no existing intervals, the inserted interval is the entire result.
Constraints
0 <= intervals.length <= 10000- Each interval has exactly two integers
[start, end]withstart <= end. intervalsis sorted by start time and contains no overlapping intervals.newIntervalhas exactly two integers withnewInterval[0] <= newInterval[1].- Every endpoint is in
[-10^9, 10^9]. - Intervals are closed, so intervals sharing an endpoint overlap.