合并区间
Question
以数组intervals
表示若干个区间的集合,其中单个区间为intervals[i] = [starti, endi]
。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。
思路
js
var merge = function(intervals) {
intervals = intervals.sort((a,b)=> a[0]<b[0]?-1:1)// x_start 从小到大排序
for(let i=1;i<intervals.length;i++){
if(intervals[i][0]<=intervals[i-1][1]){ //重叠
intervals[i-1][1] = Math.max(intervals[i-1][1],intervals[i][1])
intervals.splice(i,1) //删除
i--
}
}
return intervals
};
注意JS中删除数组指定下标的元素的方法:splice(start,deleteCount)