Leetcode 435 无重叠区间

题意理解

        给定一个区间的集合 intervals

        要求需要移除区间,使剩余区间互不重叠 

        目标:最少需要移除几个区间。

解题思路

        采用贪心思路解题,什么是全局最优解,什么是局部最优解。

        全局最优解,删除最少的区间,使剩下的区间不重叠。

        局部最优:尽可能识别重叠的区域,并移除相应区间。

        为了方便识别重叠区间,我们以区间的左边界为准升序排列,左区间一致,以右区间升序排列。

        最终的序列:同起点的区间,小区间总在最前面

        当第i个区间的左边界<第i-1个区间的右边界时,出现重叠区域,需要删除的count++;

        当删除该区间后,第i+1个元素的左边界和最早截止的区间的右边界比较,以保证更多的不重叠区间。

        为了方便统一处理,当记录删除一个区间时:

                将要删除第i的区间右边界设为Math.min(第i-1区间的右边界,第i个区间的右边界)

        

        

1.贪心解题

我们使用count记录发生重叠要删除的区域。

    public int eraseOverlapIntervals(int[][] intervals) {int count=0;//对区间进行排序Arrays.sort(intervals,(o1,o2)->(o1[0] - o2[0]));//遍历区间,总是和最左边的区间比较for(int i=1;i<intervals.length;i++){if(intervals[i][0]<intervals[i-1][1]){//有重叠count++;intervals[i][1]=Math.min(intervals[i][1],intervals[i-1][1]);}//无重叠,不操作}return count;}

2.分析

时间复杂度:O(n logn) 排序所需时间O(nlogn)+遍历的时间O(n)

空间复杂度:O(logn) 排序所需的额外栈空间O(logn)

n为输入数组的大小

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

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

相关文章

使用Java语言判断一个年度是不是闰年

一、 代码说明 引入Scanner函数&#xff0c;将类命名为Judge类&#xff0c;使用try语句和catch语句将整体代码包围起来&#xff0c;使用if语句来判断是否为闰年&#xff0c;输入年份&#xff0c;然后得到相应的结论。 二、代码 import java.util.Scanner; public class Judg…

叮咚,微信年度聊天报告(圣诞节版)请查收~丨GitHub star 16.8k+

微信年度聊天报告——圣诞节特别版&#xff0c;快发给心仪的ta吧~ 开源地址 GitHub开源地址&#xff1a;https://github.com/LC044/WeChatMsg 我深信有意义的不是微信&#xff0c;而是隐藏在对话框背后的一个个深刻故事。未来&#xff0c;每个人都能拥有AI的陪伴&#xff0c;…

Microsoft Store 里有哪些好用的软件?

Windows 应用商店还是有不少干货软件的。 下面给大家推荐 12 款 Windows 应用商店里优秀实用的 UWP 应用软件&#xff0c;无广告、不流氓、体验好&#xff0c;强烈建议收藏&#xff01; 而且经过商店审核和限制&#xff0c;也更加安全、干净&#xff0c;不用担心有乱七八糟的…

内存管理学习

内存管理 在计算系统中&#xff0c;通常存储空间分为两种&#xff1a;内部存储空间和外部存储空间。 内部存储空间通常访问速度比较快&#xff0c;能够按照变量地址随机访问&#xff0c;也就是我们通常所说的RAM&#xff08;随机存储器&#xff09;&#xff0c;可以把它理解为…

Unity 问题 之 ScrollView ,LayoutGroup,ContentSizeFitter 一起使用时,动态变化时无法及时刷新更新适配界面的问题

Unity 问题 之 ScrollView ,LayoutGroup,ContentSizeFitter 一起使用时&#xff0c;动态变化时无法及时刷新更新适配界面的问题 目录 Unity 问题 之 ScrollView ,LayoutGroup,ContentSizeFitter 一起使用时&#xff0c;动态变化时无法及时刷新更新适配界面的问题 一、简单介绍…

Yolov5水果分类识别+pyqt交互式界面

Yolov5 Fruits Detector Yolov5 是一种先进的目标检测算法&#xff0c;可以应用于水果分类识别任务。结合 PyQT 框架&#xff0c;可以创建一个交互式界面&#xff0c;使用户能够方便地上传图片并获取水果分类结果。以下将详细阐述 Yolov5 水果分类识别和 PyQT 交互式界面的实现…

基于ssm智能社区管理系统的设计与实现+vue论文

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本智能社区管理系统就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短时间内处理完毕庞大的数据信息…

unity脚本API中OnCollisionEnter()、OnTriggerEnter()二者的区别

Unity中的OnCollisionEnter和OnTriggerEnter两个函数在日常的开发中很常见但也容易混淆&#xff0c;下面说一说两者的区别。 碰撞器&#xff08;Collider&#xff09;与触发器&#xff08;Trigger&#xff09;的概念 碰撞器&#xff08;Collider&#xff09;和触发器&#xff…

nodejs+vue+ElementUi医院预约挂号系统3e3g0

本医院预约挂号系统有管理员&#xff0c;医生和用户。该系统将采用B/S结构模式&#xff0c;使用Vue和ElementUI框架搭建前端页面&#xff0c;后端使用Nodejs来搭建服务器&#xff0c;并使用MySQL&#xff0c;通过axios完成前后端的交互 管理员功能有个人中心&#xff0c;用户管…

JAVA程序流程控制

程序的流程控制一般分为3种&#xff1a;顺序结构、分支结构、循环结构 顺序结构&#xff1a;就是不加任何控制&#xff0c;代码从main方法开始自上而下执行 分支结构&#xff1a;就是根据条件判断是true还是false&#xff0c;有选择性的执行哪些代码。在Java语言中提供了两个格…

人工智能_机器学习071_SVM支持向量机_人脸识别算法_LFW人脸数据加载_与理解---人工智能工作笔记0111

然后我们继续来看 这里有个lfw_home可以看到这个数据是,包含了人脸数据 然后我们继续看,在我们的顶你用户目录下,如果安装了,sklearn就会有这样一个目录, scikit_learn_data目录,这个里面可以看到 可以看到这个文件夹中有个 lfw_home文件夹是对.zip文件夹的解压,这个下载以后…

0.618算法和基于Armijo准则的线搜索回退法

0.618代码如下&#xff1a; import math # 定义函数h(t) t^3 - 2t 1 def h(t): return t**3 - 2*t 1 # 0.618算法 def golden_section_search(a, b, epsilon): ratio 0.618 while (b - a) > epsilon: x1 b - ratio * (b - a) x2 a ratio * (b - a) h_…

L1-058:6翻了

“666”是一种网络用语&#xff0c;大概是表示某人很厉害、我们很佩服的意思。最近又衍生出另一个数字“9”&#xff0c;意思是“6翻了”&#xff0c;实在太厉害的意思。如果你以为这就是厉害的最高境界&#xff0c;那就错啦 —— 目前的最高境界是数字“27”&#xff0c;因为这…

openGauss学习笔记-168 openGauss 数据库运维-备份与恢复-导入数据-使用gs_restore命令导入数据

文章目录 openGauss学习笔记-168 openGauss 数据库运维-备份与恢复-导入数据-使用gs_restore命令导入数据168.1 操作场景168.2 操作步骤168.3 示例 openGauss学习笔记-168 openGauss 数据库运维-备份与恢复-导入数据-使用gs_restore命令导入数据 168.1 操作场景 gs_restore是…

【Linux】进程周边007之进程控制

&#x1f440;樊梓慕&#xff1a;个人主页 &#x1f3a5;个人专栏&#xff1a;《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》《实训项目》《C》《Linux》 &#x1f31d;每一个不曾起舞的日子&#xff0c;都是对生命的辜负 目录 前言 1.进程创建 2.进程终止 2.…

【JAVA面试题】什么是代码单元?什么是码点?

&#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a; JAVA ⛳️ 功不唐捐&#xff0c;玉汝于成 目录 目录 前言 思路 代码单元&#xff08;Code Unit&#xff09;&#xff1a; 码点&#xff08;Code Point&#xff09;&#xff1a; 作…

java设计模式学习之【责任链模式】

文章目录 引言责任链模式简介定义与用途实现方式 使用场景优势与劣势在Spring框架中的应用日志示例代码地址 引言 在现实生活中&#xff0c;常常会遇到这样的场景&#xff1a;一个请求或命令需要经过多个层级的处理。例如&#xff0c;一个行政审批流程可能需要通过多个部门的审…

蚂蚁集团5大开源项目获开放原子 “2023快速成长开源项目”

12月16日&#xff0c;在开放原子开源基金会主办的“2023开放原子开发者大会”上&#xff0c;蚂蚁集团主导开源的图数据库TuGraph、时序数据库CeresDB、隐私计算框架隐语SecretFlow、前端框架OpenSumi、数据域大模型开源框架DB-GPT入选“2023快速成长开源项目”。 &#xff08;图…

opencv入门到精通——图像上的算术运算

目录 目标 图像加法 图像融合 按位运算 目标 学习图像的几种算术运算&#xff0c;例如加法&#xff0c;减法&#xff0c;按位运算等。 您将学习以下功能&#xff1a;cv.add&#xff0c;cv.addWeighted等。 图像加法 您可以通过OpenCV函数cv.add()或仅通过numpy操作res …

负载电容对晶振频率稳定性的影响

在电子系统中&#xff0c;晶振是产生精确频率的关键元件&#xff0c;而负载电容是影响晶振频率稳定性的重要因素之一。本文将深入探讨负载电容对晶振频率稳定性的影响&#xff0c;并分析如何通过合理的选择和设计来减小这种影响。 一、负载电容对晶振频率稳定性的影响 负载电…