给你一个 无重叠的 ,按照区间起始端点排序的区间列表。

在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。

思路

  1. 最偷懒的做法,复用 《合并区间》 的逻辑,在开头加上一行 intervals.push(newInterval) 即可
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var insert = function (intervals, newInterval) {
intervals.push(newInterval)
intervals.sort((a, b) => a[0] - b[0])
const result = [intervals[0]]
for (let i = 1; i < intervals.length; ++i) {
const curItem = intervals[i]
const lastOne = result[result.length - 1]
if (curItem[0] <= lastOne[1]) {
lastOne[1] = Math.max(lastOne[1], curItem[1])
} else {
result.push(curItem)
}
}
return result
}