27 lines
986 B
JavaScript
27 lines
986 B
JavaScript
/**
|
||
* https://leetcode.cn/problems/merge-intervals/?envType=study-plan-v2&envId=top-interview-150
|
||
* @param {number[][]} intervals
|
||
* @return {number[][]}
|
||
*/
|
||
const merge = function (intervals) {
|
||
|
||
};
|
||
|
||
/*
|
||
思路,先对intervals按照左区间进行排序,之后遍历所有区间,如果当前区间在result中不存在就把它加入到
|
||
reslut中,如果result中存在区间并且result的最后一个区间的右区间小于当前区间的左区间,直接把当前区间加入
|
||
到reslut,否则合并区间,右边界取两个区间中较大的值
|
||
*/
|
||
function f1(intervals) {
|
||
intervals.sort((a, b) => a[0] - b[0]); // 按照左区间从小到大排序
|
||
const result = [];
|
||
for (let i = 0; i < intervals.length; i++) {
|
||
if (result.length === 0 || result[result.length - 1][1] < intervals[i][0]) {
|
||
result.push(intervals[i]);
|
||
} else {
|
||
result[result.length - 1][1] = Math.max(result[result.length - 1][1], intervals[i][1]);
|
||
}
|
||
}
|
||
return result;
|
||
}
|