題目:給出一個(gè)區(qū)間的集合,請(qǐng)合并所有重疊的區(qū)間。
示例 1:
輸入: [[1,3],[2,6],[8,10],[15,18]]
輸出: [[1,6],[8,10],[15,18]]
解釋: 區(qū)間 [1,3] 和 [2,6] 重疊, 將它們合并為 [1,6].
示例 2:
輸入: [[1,4],[4,5]]
輸出: [[1,5]]
解釋: 區(qū)間 [1,4] 和 [4,5] 可被視為重疊區(qū)間。
/**
* @param {number[][]} intervals
* @return {number[][]}
*/
var merge = function(intervals) {
// 檢測(cè)邊界條件
if(intervals.length === 0) return []
// 從小到大排序
intervals = intervals.sort((a,b) => a[0] - b[0])
// 合并區(qū)間
const res = [intervals[0]]
for(let i=1; i< intervals.length; i++) {
// 取結(jié)果數(shù)組中的最后一個(gè)元素,作為當(dāng)前元素的對(duì)比
const prev = res[res.length - 1]
if(intervals[i][0] <= prev[1]) {
prev[1] = Math.max(intervals[i][1], prev[1])
} else {
res.push(intervals[i])
}
}
return res
};