57. 插入区间

96 阅读1分钟

57. 插入区间

看下面图就可以了解思路了:

  • 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] , +∞ }

image.png

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;
}