本文共 805 字,大约阅读时间需要 2 分钟。
给出一个区间的集合,请合并所有重叠的区间。
示例 1:
输入: [[1,3],[2,6],[8,10],[15,18]]
输出: [[1,6],[8,10],[15,18]] 解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6]. 示例 2:输入: [[1,4],[4,5]]
输出: [[1,5]] 解释: 区间 [1,4] 和 [4,5] 可被视为重叠区间。/** * Definition for an interval. * function Interval(start, end) { * this.start = start; * this.end = end; * } *//** * @param {Interval[]} intervals * @return {Interval[]} */var merge = function(intervals) { var fstart=[],fend=[],res=[]; //将start和end分别存入两个数组中 for(var i in intervals){ fstart.push(intervals[i].start); fend.push(intervals[i].end); } //从小到大排列 fstart.sort((a,b)=>{return a-b;}); fend.sort((a,b)=>{return a-b;}); for (let i=0,j=0;ifend[i]){ res.push(new Interval(fstart[j],fend[i])); j=i+1; } } return res;};
转载地址:http://mrihn.baihongyu.com/