FastPrepInsert a Closed Interval

Insert a Closed Interval

Meta logoMeta● MediumINTERNPHONE SCREEN
Learn

Problem statement

Given sorted, non-overlapping closed intervals intervals and one closed interval newInterval, insert the new interval and merge every overlapping range. Return the result sorted by start, with no overlaps.

Two closed intervals overlap when they share any point, including an endpoint. Returning a new array is allowed; in-place modification is not required.

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 range overlaps the first interval only.

Example 2

intervals = [[1,2],[3,5],[6,7],[8,10],[12,16]]newInterval = [4,8]return = [[1,2],[3,10],[12,16]]

The middle three intervals merge with the inserted range.

Example 3

intervals = []newInterval = [5,7]return = [[5,7]]

No existing interval needs merging.

Constraints

  • 0 <= intervals.length <= 10000.
  • Each interval and newInterval has exactly two integers [start,end], with 0 <= start <= end <= 100000.
  • Existing intervals are sorted by start and do not overlap.

More Meta problems

See Meta hiring insights
public int[][] insertInterval(int[][] intervals, int[] newInterval) {
    // Write your code here
}
intervals[[1,3],[6,9]]
newInterval[2,5]
expected[[1,5],[6,9]]
Checking account…