56. Merge Intervals

  • 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
};
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容