合并区间题解

题目链接

56. 合并区间 - 力扣(LeetCode)

思路

  1. 解题第一步,先排序,排序是最先必须需要做的事情

  2. 根据排序,我们结果数组 res ,pos 作为当前res结果数组已经存储了几个,对于 intervals 数组第一个元素,我们直接 push 进入 res ,从 第二个元素开始进行遍历,我们看当前元素是否 小于,当前res数组位置的 right,如果满足条件,则更新 res 数组对应下标 pos 的 right,否则就直接把 intervals 当前元素 push 到res作为新的区间

代码

javascript 复制代码
/**
 * @param {number[][]} intervals
 * @return {number[][]}
 */
var merge = function (intervals) {

    if (intervals.length < 1) return []
    if (intervals.length < 2) return intervals
    // 先排序
    intervals = intervals.sort((a, b) => {
        if (a[0] != b[0]) return a[0] - b[0]
        else return a[1] - b[1]
    })

    console.log(intervals)

    let res = [intervals[0]], pos = 0

    for (let i = 1; i < intervals.length; i++) {
        if (intervals[i][0] <= res[pos][1]) {
            // 可以合并
            res[pos][1] = Math.max(intervals[i][1], res[pos][1])
        }
        else {
            res.push(intervals[i])
            pos++
        }
    }

    return res
};
相关推荐
wabs66625 分钟前
关于二叉树【力扣572.另一棵树的子树的思考】
数据结构·c++·算法·leetcode·二叉树
hanlin0329 分钟前
刷题笔记:力扣第41题-缺失的第一个正数
笔记·算法·leetcode
shehuiyuelaiyuehao1 小时前
算法50,分治归并,数组中的逆序对
java·算法
阳明山水2 小时前
校准分位数驱动智能库存决策
人工智能·深度学习·算法·机器学习·架构
雨落在了我的手上2 小时前
Java数据结构(十四):Map和Set
数据结构
码行山野赴时序归途2 小时前
链表家族收官篇:循环链表
c语言·开发语言·数据结构·链表
别动我齐刘海3 小时前
ROS2 Jazzy + C++ 实战路线——进阶学习3
c++·人工智能·vscode·python·算法·机器学习·机器人
zhangfeng11333 小时前
《从“人工适配“到“智能生成“:KernelSwift 跨国产芯片算子迁移全栈方案解读》 —— 强调范式跃迁和跨硬件属性,适合偏架构分析的写法
人工智能·算法·华为·ai编程·npu
0+1113 小时前
算法 --滑动窗口
c++·算法·leetcode
reikocao4 小时前
大场景下 Hessian 特征值放大与退化检测
算法