看下面图就可以了解思路了:
while (i < len && arr[i][1] < brr[0]) {解决插入的brr的往左区间{ -∞ , brr[0] }while (i < len && arr[i][0] <= brr[1]) {解决插入的brr区间{ brr[0],brr[1] }和 目标arr[i]的合并问题while (i < len) {解决插入的brr的往右区间{ brr[1] , +∞ }
function insert(arr, brr) {
var res = [];
var i = 0;
var len = arr.length;
while (i < len && arr[i][1] < brr[0]) {
res.push(arr[i]);
i++;
}
while (i < len && arr[i][0] <= brr[1]) {
brr[0] = Math.min(brr[0], arr[i][0]);
brr[1] = Math.max(brr[1], arr[i][1]);
i++;
}
res.push(brr);
while (i < len) {
res.push(arr[i]);
i++;
}
return res;
}