使用 JavaScript 将给定区间集合的重叠区间合并

1、题目描述

给出一个区间的集合,合并所有重叠的区间。

2、解题思路

1、准备一个容器数组用来存放合并后的区间集合
2、将所有区间按区间左边界升序排序
3、遍历给定区间数组,比较当前区间右边界和下一区间左边界
3.1、将较大值设定为新右边界,并与原左边界构成新区间
3.2、将新区间push()进容器数组
4、返回容器数组,即为合并后的无重叠区间集合数组

3、解题代码

/**
 * @param {number[][]} intervals
 * @return {number[][]}
 */
var merge = function(intervals) {
    let res = [];
    let len = intervals.length;
    if (len == 0) return [];
    intervals.sort((a, b) => a[0] - b[0]);
    for(let i = 0;i < len;i++){
        let left = intervals[i][0];
        let right = intervals[i][1];
        while (i < len - 1 && right >= intervals[i + 1][0]) {
            i++;
            right = Math.max(right, intervals[i][1]);
        }
        res.push([left, right]);
    }
    return res;
};
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值