AlgoMaster Logo

Insert Interval

intervals=[[1,3],[6,9]],newIntervalStart=2,newIntervalEnd=5
1public int[][] insert(int[][] intervals, int[] newInterval) {
2    List<int[]> result = new ArrayList<>();
3    int i = 0;
4    int n = intervals.length;
5    // Add all intervals ending before newInterval starts
6    while (i < n && intervals[i][1] < newInterval[0]) {
7        result.add(intervals[i]);
8        i++;
9    }
10    // Merge all overlapping intervals with newInterval
11    while (i < n && intervals[i][0] <= newInterval[1]) {
12        newInterval[0] = Math.min(newInterval[0], intervals[i][0]);
13        newInterval[1] = Math.max(newInterval[1], intervals[i][1]);
14        i++;
15    }
16    result.add(newInterval);
17    // Add all remaining intervals
18    while (i < n) {
19        result.add(intervals[i]);
20        i++;
21    }
22    return result.toArray(new int[result.size()][]);
23}
0 / 5
intervals[1,3][6,9]newInterval[2,5]result