当前位置: 首页 > news >正文

LeetCode 热门100题-合并区间-不熟练

题目描述:

以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。

示例 1:

输入:intervals = [[1,3],[2,6],[8,10],[15,18]]
输出:[[1,6],[8,10],[15,18]]
解释:区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].
class Solution {
public:
    vector<vector<int>> merge(vector<vector<int>>& intervals) {
        vector<vector<int>> merged;
        if (intervals.empty()) return merged;

        // 1. 按照区间的起始值排序
        sort(intervals.begin(), intervals.end());

        

        // 2. 遍历排序后的区间,进行合并
        for (const auto& interval : intervals) {
            // 如果 merged 为空或当前区间和 merged 中的最后一个区间不重叠
            if (merged.empty() || merged.back()[1] < interval[0]) {
                merged.push_back(interval);  // 不重叠,直接添加
            } else {
                // 否则,重叠,更新 merged 中最后一个区间的结束值
                merged.back()[1] = max(merged.back()[1], interval[1]);
            }
        }

        return merged;
    }
};

 学习新的用法:

sort(intervals.begin(), intervals.end());

max(merged.back()[1], interval[1]);

记录:

class Solution {
public:
    vector<vector<int>> merge(vector<vector<int>>& intervals) {
        vector<vector<int>> result;
        sort(intervals.begin(),intervals.end());
        for(const auto&interval:intervals)    //这一块不熟练
        {
            if(result.empty()||result.back()[1]<interval[0])  
            {
                result.push_back(interval);
            }
            else{
                result.back()[1]=max(interval[1],result.back()[1]);
            }
        }
        return result;
    }
};

相关文章:

  • 人工智能之姿态估计OpenPose算法源码分析(vgg19,backbone,高斯热度图,单位向量叉乘,向量累加和后求平均,感受野,多个stage纠错)
  • 【数据结构】复杂度
  • AI前端开发与职业倦怠:效率提升的解药
  • 几款dxf文件转Gcode的开源软件
  • SQL CHECK 语句详解
  • vue不是内部或外部命令?
  • Docker 实战与应用:提升开发效率的核心命令与场景解析
  • C语言-章节 1:变量与数据类型 ——「未初始化的诅咒」
  • 相机模数转换
  • Vue响应式原理实现总结(数据劫持Object.defineProperty/Proxy+发布订阅者设计模式)
  • STM32 如何使用DMA和获取ADC
  • 5分钟了解! 探索 AnythingLLM,借助开源 AI 打造私有化智能知识库,熟悉向量数据库
  • 【Unity3D优化】AssetBundle的压缩格式优化
  • Rust 组织管理
  • rk3588部署yolov6
  • Docker配置镜像加速-解决黑马商城部署Mysql失败问题
  • 【算法】递归入门
  • 详解 JavaScript 中 fetch 方法
  • Linux的IO编程基础:从入门到实践
  • 《Spring实战》(第6版)第2章 开发Web应用
  • 世界高血压日|专家:高血压患者控制血压同时应注重心率管理
  • “80后”萍乡市安源区区长邱伟,拟任县(区)委书记
  • 关税互降后的外贸企业:之前暂停的订单加紧发货,后续订单考验沟通谈判能力
  • 上海市税务局回应刘晓庆被举报涉嫌偷漏税:正依法依规办理
  • 鸿海下调全年营收展望:AI服务器业务强劲,预计今年营收增超50%
  • 在古老的意大利科莫歌剧院,廖昌永唱响16首中国艺术歌曲