/*
* @lc app=leetcode.cn id=56 lang=javascript
*
* [56] 合并区间
*/
// @lc code=start
/**
* @param {number[][]} intervals
* @return {number[][]}
*/
var merge = function (intervals) {
intervals.sort((a, b) => a[0] - b[0])
const result = [];
for (let i = 1; i < intervals.length; i++) {
if (intervals[i][0] > intervals[i - 1][1]) {
result.push(intervals[i - 1]);
} else {
// 合并后直接覆盖当前数组
intervals[i][0] = Math.min(intervals[i - 1][0], intervals[i][0]);
intervals[i][1] = Math.max(intervals[i - 1][1], intervals[i][1])
}
}
// 最后一个合并完成后不会再走循环,所以需要将最后一个添加到最终结果
result.push(intervals[intervals.length - 1]);
return result;
};
// @lc code=end
console.log(merge([[1, 3], [2, 6], [8, 10], [15, 18]]))