【力扣每日一题】2023.8.27 合并区间

目录

题目:

示例:

分析:

代码:


题目:

示例:

分析:

那么合并区间是在什么情况下才能合并呢?

我总结为两种情况

第一种情况就是这样,第二个区间的左区间大于第一个区间的左区间但是小于第一个区间的右区间,并且第一个区间的右区间小于第二个区间的右区间,这种情况下合并的结果就是第一个区间的左区间和第二个区间的右区间组成一个新的更大的区间。

 第二种情况就是第二个区间的左区间大于第一个区间的左区间但是小于第一个区间的右区间,并且第一个区间的右区间大于第二个区间的右区间,这种情况下合并的结果就是第一个区间把第二个区间吞并。

 以上两种情况都是基于第一个区间的左区间小于第二个区间的左区间的,所以我们可以先对给的区间按照左区间进行排序。

昨天是汇总区间,今天是合并区间,我们和昨天一样的是需要两个变量来记录左右区间,并且初始化为第一个区间,从下标为1的位置往后遍历剩余区间。

如果当前遍历到的区间的左区间小于等于临时变量的右区间,那么可以合并区间,我们把临时变量的右区间更新为较大值。

如果当前遍历到的区间的左区间大于临时变量的右区间,那么我们无法再合并区间了,我们往答案中添加临时变量组成的区间,然后更新临时变量为当前区间。

代码:

class Solution {
public:vector<vector<int>> merge(vector<vector<int>>& intervals) {sort(intervals.begin(),intervals.end(),[](vector<int>a,vector<int>b){return a[0]<b[0];});vector<vector<int>>res;int begin=intervals[0][0],end=intervals[0][1];  //临时变量记录左右区间,初始化为数组第一个元素for(int i=1;i<intervals.size();i++){if(intervals[i][0]>end){    //如果新区间的左区间大于临时的右区间,则发生区间不重合res.push_back({begin,end}); //添加临时变量的区间begin=intervals[i][0],end=intervals[i][1];  //更新两个临时变量}else{end=max(end,intervals[i][1]);   //如果区间重合,那么更新临时变量的右区间为较大值}}res.push_back({begin,end});return res;}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/86786.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【java】【idea2023版】Springboot模块没有.iml文件的问题

目录 方法一&#xff1a; 1、首先鼠标选中对应的对应的模块 &#xff0c;按两下Ctrl键 2、project中选择对应的模块 3、运行mvn idea:module 命令​编辑 方法二&#xff1a; 1、可以右键点击open Terminal 2、然后在打开的Terminal里输入 方法一&#xff1a; 1、首先鼠…

实用调试技巧(1)

文章目录 目录1. 什么是bug&#xff1f;2. 调试是什么&#xff1f;有多重要&#xff1f;2.1 调试是什么&#xff1f;2.2 调试的基本步骤2.3 Debug和Release的介绍 3. Windows环境调试介绍3.1 调试环境的准备3.2 学会快捷键3.3 调试的时候查看程序当前信息3.3.1 查看临时变量的值…

从零开始探索C语言(二)----变量、常量和存储类

文章目录 1. C 变量1.1 C 中的变量定义1.2 变量初始化1.3 变量不初始化1.4 C 中的变量声明1.5 C 中的左值和右值 2. C 常量2.1 整数常量2.2 浮点常量2.3 字符常量2.4 字符串常量2.5 定义常量2.6 #define 与 const 区别 3. C 存储类3.1 auto 存储类3.2 register 存储类3.3 stati…

用 PHP 和 JavaScript 显示地球卫星照片

向日葵 8 号气象卫星是日本宇宙航空研究开发机构设计制造的向日葵系列卫星之一&#xff0c;重约 3500 公斤&#xff0c;设计寿命 15 年以上。该卫星于 2014 年 10 月 7 日由 H2A 火箭搭载发射成功&#xff0c;主要用于监测暴雨云团、台风动向以及持续喷发活动的火山等防灾领域。…

【C++入门】new和delete(C/C++内存管理)

目录 1.C/C内存分布2.C语言中动态内存管理方式3.C内存管理方式3.1new/delete操作内置类型3.2new和delete操作自定义类型 4.operator new与operator delete函数5.new和delete的实现原理5.1内置类型5.2自定义类型 6.malloc/free和new/delete的区别7.定位new表达式&#xff08;了解…

机器学习十大算法之七——随机森林

0 引言 集成学习&#xff08;ensemble learning&#xff09;是时下非常流行的机器学习算法&#xff0c;它本身不是一个单独的机器学习算法&#xff0c;而是通过在数据上构建多个横型&#xff0c;集成所有模型的建模结果&#xff0c;基本上所有的机器学习领域都可以看到集成学习…

几个nlp的小任务(多选问答)

@TOC 安装库 多选问答介绍 定义参数、导入加载函数 缓存数据集 随机选择一些数据展示 进行数据预处理部分(tokenizer) 调用t

校园安全Ai视频分析预警算法

校园安全Ai视频分析预警算法通过yolov5python深度学习算法网络模型&#xff0c;校园安全Ai视频分析预警算法对学生的行为进行智能监测和预警如识别学生打架斗殴、抽烟、翻墙、倒地以及异常聚集等行为&#xff0c;及时发出预警通知。YOLO的结构非常简单&#xff0c;就是单纯的卷…

在线图片怎么转换成PDF?在线图片转换成PDF步骤介绍

文件格式要转化不知道怎么办?想要网上下载文件格式转换软件&#xff0c;但是却不知道下载哪个好?今天小编小编就给大家分享一下靠谱的小圆象PDF转换器工具&#xff0c;想知道这款软件好不好用?在线图片怎么转换成PDF?那就进来看看吧。 在线图片怎么转换成PDF 小圆象PDF转换…

maven 从官网下载指定版本

1. 进入官网下载页面 Maven – Download Apache Maven 点击下图所示链接 2. 进入文件页&#xff0c;选择需要的版本 3. 选binaries 4. 选文件&#xff0c;下载即可

DevOps系列文章之 Python基础

列表 Python中的列表类似于C语言中的数组的概念&#xff0c;列表由内部的元素组成&#xff0c;元素可以是任何对象 Python中的列表是可变的 简单的理解就是&#xff1a;被初始化的列表&#xff0c;可以通过列表的API接口对列表的元素进行增删改查 1、定义列表 1.可以将列表当成…

MinDoc:针对IT团队的文档、笔记系统

作为一名IT从业者&#xff0c;无论是在公司团队中&#xff0c;还是在平时自己写一些笔记、博客等文档&#xff0c;我都习惯使用markdown来进行书写。在使用过许多支持markdown语法的系统或软件&#xff08;如Typora、未知、我来、思源、觅道等&#xff09;后&#xff0c;我总觉…