Leetcode 435 无重叠区间

news2025/1/16 15:34:17

题意理解

        给定一个区间的集合 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.coloradmin.cn/o/1331452.html

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

相关文章

Mac使用Vmware Fusion虚拟机配置静态ip地址

一、设置虚拟机的网络为NAT 二、修改虚拟机的网络适配器网络 1、查看虚拟机的网卡 cd /etc/sysconfig/network-scripts#有些系统显示的是ens33&#xff0c;ens160等等 #不同的系统和版本&#xff0c;都会有所不同 #Centos8中默认是ens160,在RedHat/Centos7则为ens33 2、查看网…

Netty Review - 深入探讨Netty的心跳检测机制:原理、实战、IdleStateHandler源码分析

文章目录 概述心跳检测Code模拟心跳超时正常情况 IdleStateHandler源码分析channelReadchannelActiveinitialize 概述 心跳检测 Netty 的心跳检测机制是一种用于保持网络连接活跃的机制&#xff0c;它通过定期发送和接收特定的消息&#xff08;心跳包&#xff09;来确保客户端…

111基于matlab的粒子滤波进行锂离子电池的循环寿命预测

基于matlab的粒子滤波进行锂离子电池的循环寿命预测&#xff0c;输出实验、粒子滤波及自然预测数据结果。程序已调通&#xff0c;可直接运行。 111matlab锂离子电池寿命预测 (xiaohongshu.com)

Jmeter、postman、python 三大主流技术如何操作数据库?

1、前言 只要是做测试工作的&#xff0c;必然会接触到数据库&#xff0c;数据库在工作中的主要应用场景包括但不限于以下&#xff1a; 功能测试中&#xff0c;涉及数据展示功能&#xff0c;需查库校验数据正确及完整性&#xff1b;例如商品搜索功能 自动化测试或性能测试中&a…

Leetcode—剑指Offer LCR 025.两数相加II【中等】

2023每日刷题&#xff08;六十七&#xff09; Leetcode—LCR 025.两数相加II 实现代码 /*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/struct ListNode* addTwoNumbers(struct ListNode* l1, struct ListNode…

【Linux笔记】文件和目录操作

&#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a;Linux学习 ⛳️ 功不唐捐&#xff0c;玉汝于成 目录 前言 命令 ls (List): pwd (Print Working Directory): cp (Copy): mv (Move): rm (Remove): 结语 我的其他博客 前言 学习Linux命令…

2024 Jmeter 常见面试题

​ &#x1f4e2;专注于分享软件测试干货内容&#xff0c;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01;&#x1f4e2;交流讨论&#xff1a;欢迎加入我们一起学习&#xff01;&#x1f4e2;资源分享&#xff1a;耗时200小时精选的「软件测试…

论文阅读——RS DINO

RS DINO: A Novel Panoptic Segmentation Algorithm for High Resolution Remote Sensing Images 基于MASKDINO模型&#xff0c;加了两个模块&#xff1a; BAM&#xff1a;Batch Attention Module 遥感图像切分的时候把一个建筑物整体比如飞机场切分到不同图片中&#xff0c;…

Unity Webgl开发日记

一、Unity设置 二、打开、创建、启动IIS服务 &#xff08;1&#xff09;首先需要在电脑上打开IIS服务&#xff1a; &#xff08;2&#xff09;接下来需要创建一个本地服务器&#xff1a; 三、打包运行报错&#xff1a;Unable to parse Build/Test.framework.js.unityweb!The f…

C# 基于MQTT创建客户端的可靠数据传输

C# 基于MQTT创建客户端的可靠数据传输 引言MQTT简介C# MQTT库引用代码和描述1、 代码2、 描述 引言 MQTT是tcpip的应用层协议&#xff0c;这里我们简单介绍一下MQTT的基本概念&#xff0c;并用C# 描述客户端的订阅和发布。 MQTT简介 MQTT(Message Queuing Telemetry Transpor…

面试题 01.01. 判定字符是否唯一(优质解法)

链接&#xff1a;面试题 01.01. 判定字符是否唯一 代码&#xff1a; class Solution {public boolean isUnique(String astr) {//s[i]仅包含小写字母&#xff0c;数据范围小于 32 位&#xff0c;我们可以使用 int 变量的比特位来代替数组// 每个小写字符对应 bitMap 中的一个比…

Chatgpt如何共享可以防止封号!

ChatGPT 是一个基于 GPT-3.5/GPT-4 模型的对话系统&#xff0c;它主要用于处理自然语言对话。通过训练模型来模拟人类的语言行为&#xff0c;ChatGPT 可以通过文本交流与用户互动。每个新版本的 GPT 通常都会在模型规模、性能和其他方面有一些改进。在目前免费版GPT-3.5 中&…

【AI】Langchain-Chatchat搭建本地知识库-未完,先记录踩的坑

事先说一下&#xff0c;我本地的显卡4070只有12G显存&#xff0c;无法运行本地知识库&#xff0c;我把自己折腾的过程和遇到的坑先记录一下吧&#xff0c;后续如果有算力的话就再跑一遍试试。 Langchain-Chatchat曾用名Langchain-ChatGLM&#xff0c;是智谱AI的本地知识库项目&…

Qt前端技术:5.QSS

这个是表示QFrame中的pushButton中的子类和它子类的子类都将背景变为red 写成大于的时候表示只有直接的子类对象才会变 这个图中的QGroupBox和QPushButton都是QFrame的直接的子类 这个中的QGroupBox是QFrame的直接的子类但是QPushButton 是QGroupBox的子类&#xff0c;QPushB…

如何要做好年终绩效

年终绩效&#xff0c;每年12月份&#xff0c; 都是“绩效”这个词比较热门的阶段&#xff0c; 各个企业各个部门避不开的话题。 那如何能做好呢&#xff0c;一起来看看关于 要做好年终绩效考核、绩效面谈和绩效环评的建议吧&#xff01; 明确目标和指标&#xff1a;在考核开…

Tomcat远程调试

windows环境 写一个 startup-debug.bat&#xff0c;指定tomcat的根目录&#xff0c;端口自己定义 rem *******设置Tomcat目录*******-- set CATALINE_HOMED:\asd\A8-2\tomcat d: rem 8787为可用端口,为远程调试监听端口-- cd %CATALINE_HOME%/bin set JPDA_ADDRESS8787 set J…

JavaScript系列-函数调用之apply、call、bind

文章目录 适用场景apply定义语法具体的例子 call定义语法例子 bind定义例子语法多级绑定 小结更多内容 适用场景 apply、call、bind 三者都是 Function 原型上的方法&#xff0c;也就是说&#xff0c;基本所有函数都可以通过 函数名.apply|call|bind 调用 apply、call、bind …

centos7服务器安装 mysql

centos7服务器安装 mysql 一、下载 官网&#xff1a;https://dev.mysql.com/downloads/mysql/ 二、安装 1.查看有没有需要卸载的SQL包&#xff0c;一般系统的mariadb是自带的&#xff0c;需要卸载 rpm -qa | grep mysql rpm -qa | grep mariadb例如&#xff1a;安装过MySQL…

内存函数的学习

额外知识点 第一个 假设c为int类型&#xff0c;&#xff08;char&#xff09;c之后&#xff0c;之后如果还用变量c的话&#xff0c;c依然为int类型。&#xff08;&#xff09;强制转换操作符并不会永久改变原本的变量类型。 第二个 \0在打印时不会显示出来 第三个 void …

零成本搭建一款博客网站(基于Vercel+Hexo完美实现)【保姆级教程】

文章目录 &#x1f438;基于VercelHexo零成本搭建博客网站&#x1f43b;实现思路 &#x1f42e;Hexo的配置与安装&#x1f412;Hexo的美化与使用&#x1f42b;Github的推送与部署&#x1f43c;Vercel部署与网站上线&#x1f41b;总结 &#x1f438;基于VercelHexo零成本搭建博客…