Insert Interval
MediumArray
Solution
export function insert(intervals: number[][], newInterval: number[]): number[][] {
const n = intervals.length;
const inserted = [];
let currentIndex = 0;
let [start, end] = newInterval;
while (currentIndex < n && intervals[currentIndex][1] < start) {
inserted.push(intervals[currentIndex]);
currentIndex += 1;
}
while (currentIndex < n && intervals[currentIndex][0] <= end) {
start = Math.min(start, intervals[currentIndex][0]);
end = Math.max(end, intervals[currentIndex][1]);
currentIndex += 1;
}
inserted.push([start, end]);
while (currentIndex < n) {
inserted.push(intervals[currentIndex]);
currentIndex += 1;
}
return inserted;
}