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