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

Leetcode(区间合并习题思路总结,持续更新。。。)

讲解题目:合并区间

以数组 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]示例 2:输入:intervals = [[1,4],[4,5]]
输出:[[1,5]]
解释:区间 [1,4] 和 [4,5] 可被视为重叠区间
def merge(intervals):ans = []intervals.sort(key = lambda x:x[0])for interval in intervals:if not ans or interval[0] > ans[-1][-1]:ans.append(interval)else:ans[-1][-1] = max(interval[-1], ans[-1][-1])return ans

习题1

给你一个 无重叠的 ,按照区间起始端点排序的区间列表 intervals,其中 intervals[i] = [starti, endi] 表示第 i 个区间的开始和结束,并且 intervals 按照 starti 升序排列。同样给定一个区间 newInterval = [start, end] 表示另一个区间的开始和结束。在 intervals 中插入区间 newInterval,使得 intervals 依然按照 starti 升序排列,且区间之间不重叠(如果有必要的话,可以合并区间)。返回插入之后的 intervals。注意 你不需要原地修改 intervals。你可以创建一个新数组然后返回它。示例 1:输入:intervals = [[1,3],[6,9]], newInterval = [2,5]
输出:[[1,5],[6,9]]示例 2:输入:intervals = [[1,2],[3,5],[6,7],[8,10],[12,16]], newInterval = [4,8]
输出:[[1,2],[3,10],[12,16]]
解释:这是因为新的区间 [4,8] 与 [3,5],[6,7],[8,10] 重叠。
def insert(intervals, newInterval):ans = []res = []for i in range(len(intervals)):if newInterval[0] > intervals[i][0]:ans.append(intervals[i])else:ans.append(newInterval)for interval in intervals[i:]:ans.append(interval)breakif len(ans) == len(intervals):ans.append(newInterval)for array in ans:if not res or array[0] > res[-1][-1]:res.append(array)else:res[-1][-1] = max(res[-1][-1], array[-1])return res

官方答案

def insert(intervals, newInterval):ans = []left, right = newInterval[0], newInterval[1]flag = 0for l, r in intervals:if l > right:if flag == 0:ans.append([left, right])flag = 1ans.append([l, r])elif r < left:ans.append([l, r])else:left = min(left, l)right = max(right, r)if flag == 0:ans.append([left, right])return ans

相关文章:

Leetcode(区间合并习题思路总结,持续更新。。。)

讲解题目&#xff1a;合并区间 以数组 intervals 表示若干个区间的集合&#xff0c;其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间&#xff0c; 并返回一个不重叠的区间数组&#xff0c;该数组需恰好覆盖输入中的所有区间。示例 1&#xff1a;输入&a…...

『python爬虫』使用docling 将pdf或html网页转为MD (保姆级图文)

目录 预览效果安装下载模型测试代码总结 欢迎关注 『python爬虫』 专栏&#xff0c;持续更新中 欢迎关注 『python爬虫』 专栏&#xff0c;持续更新中 预览效果 支持转化pdf的表格 安装 Docling 本身是专注于文档转换的工具&#xff0c;通常用于将文件&#xff08;如 PDF&…...

elasticsearch现有集群扩展节点

原文地址&#xff1a;elasticsearch现有集群扩展节点 – 无敌牛 欢迎参观我的个人博客&#xff1a;无敌牛 – 技术/著作/典籍/分享等 给现有的 elasticsearch 集群扩展节点比较容易&#xff0c;已有的集群不需要做任何修改&#xff0c;也不用对服务做任何处理&#xff0c;只需…...

力扣162:寻找峰值

峰值元素是指其值严格大于左右相邻值的元素。 给你一个整数数组 nums&#xff0c;找到峰值元素并返回其索引。数组可能包含多个峰值&#xff0c;在这种情况下&#xff0c;返回 任何一个峰值 所在位置即可。 你可以假设 nums[-1] nums[n] -∞ 。 你必须实现时间复杂度为 O(…...

Kafka-Connect

一、概述 Kafka Connect是一个在Apache Kafka和其他系统之间可扩展且可靠地流式传输数据的工具。细心的你会发现&#xff0c;我们编写的producer、consumer都有很多重复的代码&#xff0c;KafkaConnect就是将这些通用的api进行了封装。让我们可以只关心业务部分&#xff08;数…...

递归、搜索与回溯算法 - 3 ( floodfill 记忆化搜素 9000 字详解 )

一&#xff1a;floodfill 算法 1.1 图像渲染 题目链接&#xff1a;图像渲染 class Solution {// 首先先定义四个方向的向量int[] dx {0, 0, 1, -1};int[] dy {1, -1, 0, 0};// 接着用 m 记录行数&#xff0c;n 记录列数&#xff0c;prev 记录 (sr&#xff0c; sc) 位置的…...

YOLOv9改进,YOLOv9引入CAS-ViT(卷积加自注意力视觉变压器)中AdditiveBlock模块,二次创新RepNCSPELAN4结构

摘要 CAS-ViT 是一种为高效移动应用设计的视觉Transformer。模型通过结合卷积操作与加性自注意机制,在保持高性能的同时显著减少计算开销,适合资源受限的设备如手机。其核心组件 AdditiveBlock 通过多维度信息交互和简化的加性相似函数,实现了高效的上下文信息整合,避免了…...

HDLCPPP原理与配置

前言: 广域网中经常会使用串行链路来提供远距离的数据传输&#xff0c;高级数据链路控制HDLC&#xff08; High-Level Data Link Control &#xff09;和点对点协议PPP&#xff08; Point to Point Protocol&#xff09;是两种典型的串口封装协议。 HDLC协议&#xff1a; 原理…...

react + vite 中的环境变量怎么获取

一、Vite 环境变量基础 创建一个.env文件&#xff0c;Vite 定义的环境变量需要以VITE_开头。 VITE_API_URL "http://localhost:3000/api" 生产模式创建.env.production。 VITE_API_URL "https://production-api-url.com/api" 二、在 React 组件中获…...

知识蒸馏中有哪些经验| 目标检测 |mobile-yolov5-pruning-distillation项目中剪枝知识分析

项目地址&#xff1a;https://github.com/Syencil/mobile-yolov5-pruning-distillation 项目时间&#xff1a;2022年 mobile-yolov5-pruning-distillation是一个以yolov5改进为主的开源项目&#xff0c;主要包含3中改进方向&#xff1a;更改backbone、模型剪枝、知识蒸馏。这里…...

Oracle 19c RAC单节点停机维护硬件

背景 RAC 环境下一台主机硬件光纤卡不定时重启&#xff0c;造成链路会间断几秒&#xff0c;期间数据库会话响应时间随之变长&#xff0c;该光纤卡在硬件厂商的建议下&#xff0c;决定停机更换备件&#xff0c;为保证生产影响最小&#xff0c;决定停掉该节点&#xff0c;另外节…...

Linux系统 进程

Linux系统 进程 进程私有地址空间用户模式和内核模式上下文切换 进程控制系统调用错误处理进程控制函数获取进程 ID创建和终止进程回收子进程让进程休眠加载并运行程序 进程 异常是允许操作系统内核提供进程&#xff08;process&#xff09;概念的基本构造块&#xff0c;进程是…...

机载视频流回传+编解码方案

无线网络&#xff0c;低带宽场景。不能直接转发ROS raw image&#xff08;10MB/s&#xff09;&#xff0c;而要压缩&#xff08;编码&#xff09;后再传输。可以用rtsp的udp传输或者直接传输话题&#xff0c;压缩方法有theora&#xff08;ROS image_transport默认支持&#xff…...

Ubuntu 20.04 Server版连接Wifi

前言 有时候没有网线口插网线或者摆放电脑位置不够时&#xff0c;需要用Wifi联网。以下记录Wifi联网过程。 环境&#xff1a;Ubuntu 20.04 Server版&#xff0c;无UI界面 以下操作均为root用户&#xff0c;如果是普通用户&#xff0c;请切换到root用户&#xff0c;或者在需要权…...

【VRChat 改模】开发环境搭建:VCC、VRChat SDK、Unity 等环境配置

一、配置 Unity 相关 1.下载 UnityHub 下载地址&#xff1a;https://unity.com/download 安装打开后如图所示&#xff1a; 2.下载 VRChat 官方推荐版本的 Unity 跳转界面&#xff08;VRChat 官方推荐页面&#xff09;&#xff1a;https://creators.vrchat.com/sdk/upgrade/…...

人工智能的微积分基础

目录 ​编辑 引言 微积分的基本概念 1. 导数 2. 积分 3. 微分方程 微积分在人工智能中的应用 1. 机器学习中的优化 2. 反向传播算法 3. 概率与统计 4. 控制理论 5. 自然语言处理中的梯度 6. 计算机视觉中的积分 7. 优化算法中的微积分 8. 微分几何在深度学习中的…...

Android 基础类(01)- Thread类 - readyToRun和threadLoop

一、前言&#xff1a; 在阅读AOSP代码过程中&#xff0c;我们经常会看到Thread子类重写两个方法&#xff1a;readyToRun和threadLoop&#xff0c;不清楚的同学&#xff0c;可能在这儿连调用逻辑都搞不清楚了&#xff0c;因为找不到谁调用了它。我这儿先不去深究Thread内部逻辑…...

C++设计模式之构造器

动机 在软件系统中&#xff0c;有时候面临着“一个复杂对象”的创建工作&#xff0c;其通常由各个部分的子对象用一定的算法构成&#xff1b;由于需求的变化&#xff0c;这个复杂对象的各个部分经常面临着剧烈的变化&#xff0c;但是将它们组合在一起的算法却相对稳定。 如何…...

红日靶场-5

环境搭建 这个靶场相对于前几个靶场来说较为简单&#xff0c;只有两台靶机&#xff0c;其中一台主机是win7&#xff0c;作为我们的DMZ区域的入口机&#xff0c;另外一台是windows2008&#xff0c;作为我们的域控主机&#xff0c;所以我们只需要给我们的win7配置两张网卡&#…...

做异端中的异端 -- Emacs裸奔之路3: 上古神键Hyper

谈一下快捷捷冲突的问题。 Emacs几乎穷尽所有组合键 我用下面命令&#xff0c;在Fundamental模式下&#xff0c;枚举所有绑定。 (defun keymap-lookup-test-fn(); printable keys(setq printable-chars (number-sequence 33 126))(setq i 0)(while (< i (length printable…...

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…...

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…...

大话软工笔记—需求分析概述

需求分析&#xff0c;就是要对需求调研收集到的资料信息逐个地进行拆分、研究&#xff0c;从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要&#xff0c;后续设计的依据主要来自于需求分析的成果&#xff0c;包括: 项目的目的…...

Caliper 配置文件解析:config.yaml

Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...

IP如何挑?2025年海外专线IP如何购买?

你花了时间和预算买了IP&#xff0c;结果IP质量不佳&#xff0c;项目效率低下不说&#xff0c;还可能带来莫名的网络问题&#xff0c;是不是太闹心了&#xff1f;尤其是在面对海外专线IP时&#xff0c;到底怎么才能买到适合自己的呢&#xff1f;所以&#xff0c;挑IP绝对是个技…...

Selenium常用函数介绍

目录 一&#xff0c;元素定位 1.1 cssSeector 1.2 xpath 二&#xff0c;操作测试对象 三&#xff0c;窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四&#xff0c;弹窗 五&#xff0c;等待 六&#xff0c;导航 七&#xff0c;文件上传 …...

【 java 虚拟机知识 第一篇 】

目录 1.内存模型 1.1.JVM内存模型的介绍 1.2.堆和栈的区别 1.3.栈的存储细节 1.4.堆的部分 1.5.程序计数器的作用 1.6.方法区的内容 1.7.字符串池 1.8.引用类型 1.9.内存泄漏与内存溢出 1.10.会出现内存溢出的结构 1.内存模型 1.1.JVM内存模型的介绍 内存模型主要分…...

数据结构:递归的种类(Types of Recursion)

目录 尾递归&#xff08;Tail Recursion&#xff09; 什么是 Loop&#xff08;循环&#xff09;&#xff1f; 复杂度分析 头递归&#xff08;Head Recursion&#xff09; 树形递归&#xff08;Tree Recursion&#xff09; 线性递归&#xff08;Linear Recursion&#xff09;…...

GeoServer发布PostgreSQL图层后WFS查询无主键字段

在使用 GeoServer&#xff08;版本 2.22.2&#xff09; 发布 PostgreSQL&#xff08;PostGIS&#xff09;中的表为地图服务时&#xff0c;常常会遇到一个小问题&#xff1a; WFS 查询中&#xff0c;主键字段&#xff08;如 id&#xff09;莫名其妙地消失了&#xff01; 即使你在…...

Ray框架:分布式AI训练与调参实践

Ray框架&#xff1a;分布式AI训练与调参实践 系统化学习人工智能网站&#xff08;收藏&#xff09;&#xff1a;https://www.captainbed.cn/flu 文章目录 Ray框架&#xff1a;分布式AI训练与调参实践摘要引言框架架构解析1. 核心组件设计2. 关键技术实现2.1 动态资源调度2.2 …...