【力扣每日一题】2023.8.28 插入区间

目录

题目:

示例:

分析:

代码:


题目:

示例:

分析:

和昨天的题大差不差,我们仍然是有一堆区间,题目给我们一个新的区间,要我们把新区间插入到原本的区间数组里,并且能合并的要合并。

我们可以直接把新区间放入数组里,接着执行昨天的代码即可,一行都不用改,甚至形参名字都是一样的。

由于本题中原始数组就是按照左区间升序排序,因此我们可以做一个小优化,我们按照左区间升序的这样一个规则插入新区间,这样就不必再对数组进行排序从而减少运行时间了。我们只需要找到原始区间中第一个左区间大于新区间的左区间的区间即可,然后将新区间插入到这个区间的前面,接着再按照昨天的代码。

代码:

class Solution {
public:vector<vector<int>> insert(vector<vector<int>>& intervals, vector<int>& newInterval) {//昨天的代码照搬intervals.push_back(newInterval);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;//小小优化一下int index=0;for(;index<intervals.size();index++){if(newInterval[0]<=intervals[index][0]) break;}intervals.insert(intervals.begin()+index,newInterval);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/88346.html

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

相关文章

开源与云计算:新的合作模式

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

lvs实现DR模型搭建

目录 一&#xff0c;实现DR模型搭建 1&#xff0c; 负载调度器配置 1.1调整ARP参数 1.2 配置虚拟IP地址重启网卡 1.3 安装ipvsadm 1.4 加载ip_vs模块 1.5 启动ipvsadm服务 1.6 配置负载分配策略 1.7 保存策略 2&#xff0c; web节点配置 1.1 调整ARP参数 1.2 配置虚拟I…

nlp系列(7)三元组识别(Bert+CRF)pytorch

模型介绍 在实体识别中&#xff1a;使用了Bert模型&#xff0c;CRF模型 在关系识别中&#xff1a;使用了Bert模型的输出与实体掩码&#xff0c;进行一系列变化&#xff0c;得到关系 Bert模型介绍可以查看这篇文章&#xff1a;nlp系列&#xff08;2&#xff09;文本分类&…

北京筑龙受邀出席中物联“采购供应链中国行—走进雄安”活动

日前&#xff0c;“采购供应链中国行—走进雄安”活动在河北雄安新区成功举办&#xff0c;来自30家相关单位的50余名领导和代表参加了本次活动。活动由中国物流与采购联合会公共采购分会主办&#xff0c;中国物流与采购联合会采购委、中国雄安集团有限公司、河北雄安新区招标投…

【数学建模】清风数模正课5 相关性分析

相关系数 相关性分析的关键是计算相关系数&#xff0c;在本节课中将会介绍两种常用的相关系数&#xff1a;皮尔逊相关系数&#xff08;Pearson&#xff09;和斯皮尔曼相关系数&#xff08;Spearman&#xff09;。 它们可以用来衡量两个变量间相关性的大小&#xff0c;对于不同…

Leetcode刷题:395. 至少有 K 个重复字符的最长子串、823. 带因子的二叉树

Leetcode刷题:395. 至少有 K 个重复字符的最长子串、823. 带因子的二叉树 1. 395. 至少有 K 个重复字符的最长子串算法思路参考代码和运行结果 2. 823. 带因子的二叉树算法思路参考代码和运行结果 1. 395. 至少有 K 个重复字符的最长子串 题目难度&#xff1a;中等 标签&#…

[QT]设置程序仅打开一个,再打开就唤醒已打开程序的窗口

需求&#xff1a;speedcrunch 这个软件是开源的计算器软件。配合launch类软件使用时&#xff0c;忘记关闭就经常很多窗口&#xff0c;强迫症&#xff0c;从网上搜索对版本进行了修改。 #include "gui/mainwindow.h"#include <QCoreApplication> #include <…

解决AD(Altium Designer)导入HFSS的dxf文件只有轮廓,填充的方法

解决Altium Designer导入HFSS的dxf文件只有轮廓&#xff0c;填充的方法 环境操作 环境 Altium Designer (19.0.4) 操作 设计》规则 左键框选 工具》转换》从选择的元素创建铺铜 选好点击apply 多重复几次&#xff0c;就全填充完了。

瑞幸带领咖啡界进入低价时代,背后的用意是什么?

瑞幸作为国内首家突破万店的咖啡品牌,为何又会推出9.9元低价购买咖啡的活动呢,据相... 在线上线下的渠道里大肆推送0.99-9.9的优惠券。 是谁还没有为瑞幸9.9元拼过命&#xff0c;小编身边的人每天靠咖啡续命&#xff0c;有时还会借用别人的9.9&#xff0c;去薅所谓的“羊毛”。…

视频集中存储/云存储平台EasyCVR国标GB28181协议接入的报文交互数据包分析

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快&#xff0c;可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等&#xff0c;以及支持厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等。视频汇聚融合管理…

npm install sentry-cli失败的问题

1. 目前报错 2. 终端运行 npm set ENTRYCLI_CDNURLhttps://cdn.npm.taobao.org/dist/sentry-cli npm set sentrycli_cdnurlhttps://cdn.npm.taobao.org/dist/sentry-cli3. 再安装 npx sentry/wizardlatest -i nextjs即可成功

【Java基础篇】一文搞懂Java方法的调用与重载(超详细)

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【JavaSE_primary】 目录 一、方法的概念以及使用1.1什么是方法1.2方法定义1.3方法调用的执行过程1.4形参和实参的关系 二、方法的重载方…