美文网首页
leetcode-day18-插入区间[57]

leetcode-day18-插入区间[57]

作者: 孙静静 | 来源:发表于2020-11-04 16:59 被阅读0次
image.png

思路:将新的数组和旧的数据取交集,分为三种情况,一是旧数组的数在新数组之前,二是在之后,三是有交集,有交集的话就取并集,这里很重要的一步是,最后要判断是否有交集,如果没有交集,还需要把新数据添加到旧数组中。最后将组合的新数组排序。

/**
 * @param {number[][]} intervals
 * @param {number[]} newInterval
 * @return {number[][]}
 */
var insert = function(intervals, newInterval) {
    if(intervals.length === 0) return [newInterval];
    let left = newInterval[0], right = newInterval[1];
    let arr = [], arr2 = [], arr3 = [], arr4 = [];
    intervals.map(item =>{
        if(item[0] > right || item[1] < left){  // 没交集
            arr.push(item);
            console.log(1);
        } else {
            arr2.push(Math.min(item[0], left));
            arr2.push(Math.max(item[1], right));
        }
    })
    if(arr2.length === 0){
        arr.push([left, right]);
    } else {
        arr.push([arr2[0], arr2[arr2.length - 1]]);
    }
  // 排序
    arr3 = arr.flat();
    arr3.sort((a, b) =>
        return a - b;
    })
    for(let i=0;i<arr3.length;i++){
        if(i % 2 === 0){
            arr4.push([arr3[i], arr3[i+1]]);
        }
    }
    return arr4;
};

相关文章

  • leetcode-day18-插入区间[57]

    思路:将新的数组和旧的数据取交集,分为三种情况,一是旧数组的数在新数组之前,二是在之后,三是有交集,有交集的话就取...

  • 区间合并算法

    0X00 区间合并 803. 区间合并 57. 插入区间

  • 57.插入区间

  • [LeetCode]57、插入区间

    题目描述 给出一个无重叠的 ,按照区间起始端点排序的区间列表。 在列表中插入一个新的区间,你需要确保列表中的区间仍...

  • LeetCode - #57 插入区间

    前言 我们社区陆续会将顾毅(Netflix 增长黑客,《iOS 面试之道》作者,ACE 职业健身教练。微博:@故胤...

  • Leetcode 57 | 插入区间

    题目 Leetcode地址:57. 插入区间[https://leetcode.cn/problems/inser...

  • 力扣 57 插入区间

    题意:给一个区间数组,和一个区间,把那个区间插入区间数组 思路:遍历每一个interval 如果当前interva...

  • leetcode_57 插入区间

    碎碎念,每次自己都钻牛角尖,相出来的解法打了n个补丁也过不了,有更好的思路但是想不到,还是换个思路更好,卑微看答案...

  • 排序

    56-合并区间57-插入区间 字典序排数 给定 n =1 3,返回 [1,10,11,12,13,2,3,4,5,...

  • 57. Insert Interval 插入区间

    题目链接tag: Hard; question:  Given a set of non-overlapping ...

网友评论

      本文标题:leetcode-day18-插入区间[57]

      本文链接:https://www.haomeiwen.com/subject/xeigvktx.html