- Runtime: 72 ms, faster than 100.00%
- Memory Usage: 40.8 MB, less than 53.93%
首先依靠左边的元素进行排序然后逐个比较,for of 创建一个循环迭代可迭代对象。
for ... of语句创建循环遍历可迭代对象的循环,包括:内置String,Array,类似于Array的对象(例如,arguments或NodeList),TypedArray,Map,Set和用户定义的iterables。 它调用一个自定义迭代钩子,其中包含要为对象的每个不同属性的值执行的语句。
/**
* @param {number[][]} intervals
* @return {number[][]}
*/
var merge = function(intervals) {
if(intervals.length < 2) return intervals
intervals.sort((a, b) => a[0] - b[0])
let res = []
let sub = intervals[0]
res.push(sub)
for (let item of intervals) {
if(item[0] > sub[1]) {
sub = item
res.push(sub)
} else if(item[0] <= sub[1] && item[1] > sub[1]) {
res.pop()
sub[1] = item[1]
res.push(sub)
}
}
return res
};