合并数组
输入:intervals = [[1,3],[2,6],[8,10],[15,18]]
输出:[[1,6],[8,10],[15,18]]
解释:区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].
var merge = function(intervals) {
let ans=[]
intervals.sort((a,b)=>{
return a[0]-b[0]
})
let i=0,prev=null
while(i<intervals.length){
let current=intervals[i]
if(prev){
// 不相交
if(current[0]>prev[1]){
ans.push(current)
prev=current
i++
continue
}
// 相交
if(current[1]>prev[1]){
let data=[prev[0],current[1]]
ans.pop()
ans.push(data)
prev=data
i++
continue
}
// 包含
i++
}else{
ans.push(current)
prev=current
i++
}
}
return ans
};