合并区间题解

题目链接

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
};
相关推荐
UP_Continue4 小时前
哈希表实现--开放定址法
数据结构·哈希算法·散列表
brave and determined4 小时前
传感器学习(day04):红外感知:从经典热释电开关到智能时代的隐形慧眼
嵌入式硬件·算法·传感器·红外·嵌入式设计·红外矩阵·人体红外
南极星10054 小时前
OPENCV(python)--初学之路(十六)SURF简介
python·opencv·算法
yongui478344 小时前
基于MATLAB的轴承表面织构油膜参数计算程序
数据结构·算法·matlab
猎板PCB黄浩4 小时前
多层电路板技术深度解析:高密度集成时代的核心支撑
网络·人工智能·算法
leoufung4 小时前
LeetCode 39. Combination Sum 题解(回溯 / DFS)
算法·leetcode·深度优先
Tisfy4 小时前
LeetCode 3577.统计计算机解锁顺序排列数:脑筋急转弯(组合数学)
算法·leetcode·题解·组合数学·脑筋急转弯
圣保罗的大教堂4 小时前
leetcode 3577. 统计计算机解锁顺序排列数 中等
leetcode
(●—●)橘子……4 小时前
3643.垂直翻转子矩阵 练习理解
笔记·python·学习·算法·leetcode·矩阵