每日一题(力扣)---插入区间

官方网址:. - 力扣(LeetCode)

题目:

给你一个 无重叠的 ,按照区间起始端点排序的区间列表 intervals,其中 intervals[i] = [starti, endi] 表示第 i 个区间的开始和结束,并且 intervals按照 starti 升序排列。同样给定一个区间 newInterval = [start, end] 表示另一个区间的开始和结束。
在 intervals 中插入区间 newInterval,使得 intervals 依然按照 starti 升序排列,且区间之间不重叠(如果有必要的话,可以合并区间)。返回插入之后的 intervals


注意 :你不需要原地修改 intervals。你可以创建一个新数组然后返回它。

个人思路:

题解:首先判断intervals数组长度,如果为0可以直接将newInterval返回

其他情况:将newIntervals插入到intervals中,对intervals按照左端点递增的顺序进行排序

代码思路:

  1. 定义一个辅助数组,也是我们的答案。默认为Intervals的第一个元素
  2. 然后从下标1开始遍历,如果位置为i的左端点比当前res位置的右端点还要大,很明显不能合并直接插入,更新当前元素的位置
  3. 如果小于等于的话,需要合并区间。左端点不变,右端点取当前遍历元素和当前ptr位置元素右端点的最大值即可。由于是合并区间所以,ptr值不需要更新

代码(非最优):

代码:/*** @param {number[][]} intervals* @param {number[]} newInterval* @return {number[][]}*/
var insert = function(intervals, newInterval) {if(intervals.length === 0) return [newInterval]intervals.push(newInterval)intervals.sort((a, b) =>  a[0] - b[0])const res = [intervals[0]]let ptr = 0for(let i = 1; i < intervals.length; i++) {if(intervals[i][0] > res[ptr][1]) {res.push(intervals[i])ptr++} else {res[ptr] = [res[ptr][0], Math.max(res[ptr][1], intervals[i][1])]}}return res
};

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

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

相关文章

C语言中的数据结构--链表的应用2(3)

前言 上一节我们学习了链表的应用&#xff0c;那么这一节我们继续加深一下对链表的理解&#xff0c;我们继续通过Leetcode的经典题目来了解一下链表在实际应用中的功能&#xff0c;废话不多说&#xff0c;我们正式进入今天的学习 单链表相关经典算法OJ题4&#xff1a;合并两个…

Terraform 语法配置

配置语法 Terraform 的配置文件都是以 .tf 为后缀Terraform 支持两种模式 HCL、JSON Provider 插件 providers 地址&#xff1a;Terraform Registry Terraform 通过 provider 管理基础设施&#xff0c;使用 provider 与云供应商 API 进行交互&#xff0c;每个 Provider 都包含…

【Qt】:常用控件(四:显示类控件)

常用控件 一.Lable二.LCD Number 一.Lable QLabel 可以⽤来显⽰⽂本和图⽚. 代码⽰例:显⽰不同格式的⽂本 代码⽰例:显⽰图⽚ 此时,如果拖动窗⼝⼤⼩,可以看到图⽚并不会随着窗⼝⼤⼩的改变⽽同步变化 为了解决这个问题,可以在Widget中重写resizeEvent函数。当用户把窗口从A拖…

分享6个好用的 ChatGPT Site 大模型

目录 1、通义千问 (aliyun.com) 2、MIYAGPT (miyadns.com) 3、AIchatOS 4、 Safeline Waf CE (aitianhu1.top) 5、1Chat.vin国内免费且最快的智能AI (a1r.cc) 6、1Chat问答绘画 (1ai.ink) GPT的英文全称是Generative Pre-trained Transformer&#xff0c;它是一种基于Transform…

DRL-VWAP算法

摘要 在量化策略的交易端&#xff0c;为了更好的扩大策略的资金容量必须要考虑策略冲击陈本的降低。本文梳理了传统 VWAP 存在的诸多弊端&#xff0c;主要在于对于日内交易信息的缺失与忽略市场行情的影响。本文梳理了传统VWAP 算法存在的主要弊端&#xff0c;并改写了传统 VW…

(学习日记)2024.04.12:UCOSIII第四十节:软件定时器函数接口讲解

写在前面&#xff1a; 由于时间的不足与学习的碎片化&#xff0c;写博客变得有些奢侈。 但是对于记录学习&#xff08;忘了以后能快速复习&#xff09;的渴望一天天变得强烈。 既然如此 不如以天为单位&#xff0c;以时间为顺序&#xff0c;仅仅将博客当做一个知识学习的目录&a…

【数字化转型】上市公司智能制造词频统计数据(1991-2022年)

数据来源&#xff1a;上市公司年报 时间跨度&#xff1a;1991-2022年 数据范围&#xff1a;上市公司 数据指标&#xff1a; 版本一 智能制造 智能机器 智能生产 机器人 全自动 全机器 版本二 宏观政策 中国制造2025 工业4.0 互联网 范式特征 自动化 信息化 信息…

建设以电折水试点项目,在选择以电折水控制器时要考哪些因素?

在建设电折水试点项目时&#xff0c;选择设备是一个至关重要的环节。为了确保项目的成功实施&#xff0c;以下关键因素供您参考&#xff1a; 技术兼容性&#xff1a;确保所选设备与技术方案相匹配&#xff0c;能够实现电折水的转换过程&#xff0c;并满足项目的需求。 能效与…

【端云一体化开发】云函数本地运行/调试启动失败的两种解决方案

最近本地调试云函数一直出现这个错误&#xff1a;Before launch task execute failed! details:java.lang.lllegalStateException: npm installfailed 这个问题的原因似乎是运行云函数的时候会重新下载 npm 及相关依赖文件&#xff0c;但是 DevEco 的 npm 模块出错导致这个步骤…

只需几十秒即可在linux环境下部署一个完整的mysql服务【自动化部署脚本】

&#x1f341;博主简介&#xff1a; &#x1f3c5;云计算领域优质创作者 &#x1f3c5;2022年CSDN新星计划python赛道第一名 &#x1f3c5;2022年CSDN原力计划优质作者 &#x1f3c5;阿里云ACE认证高级工程师 &#x1f3c5;阿里云开发者社区专…

安装jdk

创建安装目录 cd /home mkdir jdk解压压缩包 tar -zxvf jdk-8u211-linux-x64.tar.gz配置环境变量 vim /etc/profileexport JAVA_HOME/DATA/jdk/jdk1.8.0_211 export CLASSPATH$:CLASSPATH:$JAVA_HOME/lib/ export PATH$PATH:$JAVA_HOME/bin刷新环境变量 source /etc/prof…

Java - 赋值运算符

在这个实战中&#xff0c;我们将学习赋值运算符的使用方法。首先&#xff0c;我们将介绍简单赋值运算符的基本概念和语法格式。然后&#xff0c;我们将通过案例演示来加深对赋值运算符的理解。接下来&#xff0c;我们将对比Java和Python这两种不同的编程语言&#xff0c;探讨它…