java数据结构与算法刷题-----LeetCode435. 无重叠区间

java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/123063846

文章目录

在这里插入图片描述

解题思路:贪心思想。时间复杂度O( n ∗ l o g 2 n n*log_2n nlog2n)也就是快速排序需要的时间复杂度,空间复杂度O( l o g 2 n log_2n log2n)是快速排序需要的栈空间
  1. 将所有区间按照第二个字段(end),按照升序排列
  2. 依次遍历排序好的区间,并记录当前最大end值
  3. 找出不重叠的区间数量,不重叠的条件是:如果当前区间start>=end,那么当前区间和已遍历区间一定不重叠
  4. 最后用区间总数 - 不重叠区间 = 需要移除的区间
代码

在这里插入图片描述

class Solution {
    public int eraseOverlapIntervals(int[][] intervals) {
        if (intervals.length == 0) return 0;
        Arrays.sort(intervals, new Comparator<int[]>() {
            //按照每个区间的end排序,a-b返回值>0 a放在b后面
            public int compare(int[] interval1, int[] interval2) {
                return interval1[1] - interval2[1];//升序排列
            }
        });

        int n = intervals.length;//所有区间的个数
        int right = intervals[0][1];//保存目前重叠区间后最右边界(end)大小。初始保存第一个区间的end
        int ans = 1;//保存有几个不重叠的区间,初始只有第一个区间,一定不重叠
        for (int i = 1; i < n; ++i) {
            if (intervals[i][0] >= right) {//如果当前区间的start >= 目前最右区间大小
                ++ans;//说明当前区间绝对不会重叠
                right = intervals[i][1];//right指向当前区间加入重叠后的end
            }
        }
        return n - ans;//n所有区间 - 非多余区间 = 需要移除的区间
    }
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

闻了刚脱下的袜子导致肺部感染真菌?后果很严重

之前有网友分享自己只因闻了刚脱下的袜子&#xff0c;就导致了肺部感染真菌的经历&#xff0c;引发众多网友的关注与热议。 那么&#xff0c;臭袜子又怎么会和肺部感染有关系呢&#xff1f;臭袜子为什么不能闻呢&#xff1f;袜子上面到底有什么有危险的成分呢&#xff1f; 图源…

基于Matlab的血管图像增强算法,Matlab实现

博主简介&#xff1a; 专注、专一于Matlab图像处理学习、交流&#xff0c;matlab图像代码代做/项目合作可以联系&#xff08;QQ:3249726188&#xff09; 个人主页&#xff1a;Matlab_ImagePro-CSDN博客 原则&#xff1a;代码均由本人编写完成&#xff0c;非中介&#xff0c;提供…

Day20 代码随想录(1刷) 二叉树

目录 654. 最大二叉树 617. 合并二叉树 700. 二叉搜索树中的搜索 98. 验证二叉搜索树 654. 最大二叉树 给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建: 创建一个根节点&#xff0c;其值为 nums 中的最大值。递归地在最大值 左边 的 子数…

Linux: 线程安全

Linux 线程共享了进程的资源(地址空间, 页表等), 多个线程同时访问同一个资源就可能产生问题:数据竞争 临界资源: 多个线程共享的资源临界区: 访问临界资源的区域互斥: 任何时刻, 只有一个执行流能进入临界区同步: 以一定顺序访问临界资源原子性: 要么完成, 玩么未完成 锁 死…

Unity Mobile Notifications推送问题

1.在部分机型点击通知弹窗进不去游戏 把这里改成自己的Activity 2.推送的时候没有横幅跟icon红点 主要是第一句话 注册的时候选项可以选择 defaultNotificationChannel new AndroidNotificationChannel(“default_channel”, “Default Channel”, “For Generic notifica…

由浅到深认识Java语言(24):Date类

该文章Github地址&#xff1a;https://github.com/AntonyCheng/java-notes 在此介绍一下作者开源的SpringBoot项目初始化模板&#xff08;Github仓库地址&#xff1a;https://github.com/AntonyCheng/spring-boot-init-template & CSDN文章地址&#xff1a;https://blog.c…

Zotero 配置教程Windonws与Linux

Zotero的安装 zotero 官网&#xff1a; Zotero | Your personal research assistant 官方文档 &#xff1a;start [Zotero Documentation] 推荐常用的插件 1、 茉莉花&#xff1a;https://github.com/l0o0/jasminum 2、 Doi管理&#xff1a;https://github.com/bwiernik/zo…

web表单标签与练习(3.18)

一、表单域 表单域是一个包含表单元素的区域。 在HTML标签中&#xff0c;< form >标签用于定义表单域&#xff0c;以实现用户信息和传递。 < form >会把它范围内的表单元素信息提交给服务器。 表单属性 action url地址 用于指定接收并处理表单数据的服务器程序的…

SpringBoot ---HTML转PDF工具

之前项目用的WKHtmlToPdf&#xff0c;速度较慢&#xff0c;现在需要改成基于ITEXT java使用itext7实现html转pdf_java使用itext7实现html转pdf全代码完整示例 cainiaobulan-CSDN博客文章浏览阅读2.7k次。使用itext7html转pdf_java使用itext7实现html转pdf全代码完整示例 caini…

HTML 常用标签总结

本篇文章总结了一些我在学习html时所记录的标签&#xff0c;虽然总结并不是非常全面&#xff0c;但都是一些比较常用的。 html元素标签 首先一个html界面是由无数个元素标签组成的&#xff0c;每个元素具有它的属性 1.input 单行文本框 标签type属性——text <input ty…

第四十五周:文献阅读

目录 摘要 Abstract 文献阅读&#xff1a;基于注意力的双向LSTM和编码器-解码器的水质预测 现有问题 提出方法 创新点 方法论 1、EMD&#xff08;经验模态分解&#xff09; 2、VMD&#xff08;变分模态分解&#xff09; 3、VBAED模型 研究实验 数据集 数据预处理 …

此站点的连接不安全,怎么解决?

有部分的网站用户在打开的时候会被提示“此站点的连接不安全”这种现象为什么会出现&#xff0c;大概率是因为没有安装SSL证书或者SSL证书出现了错误&#xff0c;小编在这里面将展开讲解为大家分析其中的原因以及解决方法。 一&#xff1a;遇到该情况的时候该怎么办&#xff1…

【基于HTML5的网页设计及应用】——随机验证码

&#x1f383;个人专栏&#xff1a; &#x1f42c; 算法设计与分析&#xff1a;算法设计与分析_IT闫的博客-CSDN博客 &#x1f433;Java基础&#xff1a;Java基础_IT闫的博客-CSDN博客 &#x1f40b;c语言&#xff1a;c语言_IT闫的博客-CSDN博客 &#x1f41f;MySQL&#xff1a…

2024/3/24--爬虫库

1.常用的爬虫库 (1)在setting的project里面点击Python Interpreter (2&#xff09;常用的爬虫库有 import requests //用途&#xff1a;用于发送HTTP请求。from bs4 import BeautifulSoup //用于从HTML或XML文档中提取数据。import scrapy //一个功能强大的爬虫框架&#xf…

TypeScript基础类型

string、number、bolean 直接在变量后面添加即可。 let myName: string Tomfunction sayHello(person: string) {return hello, person } let user Tom let array [1, 2, 3] console.log(sayHello(user))function greet(person: string, date: Date): string {console.lo…

R语言迅速计算多基因评分(PRS)

Polygenic Risk Scores in R 最朴素的理解PRS&#xff1a; GWAS分析结果中&#xff0c;有每个SNP的beta值、se值、P值&#xff0c;因为GWAS分析中将SNP变为0-1-2编码&#xff0c;所以这些显著的SNP的beta值&#xff0c;就可以用于预测。 比如&#xff1a;GWAS分析中&#xf…

【C语言】结构体与位段

一、前言 我们之前学习过定义一个整型类型的变量又或者定义一个浮点型类型的变量...&#xff0c;这些变量可以描述一个整数又或者描述一个小数...&#xff0c;可无论是整数还是小数...&#xff0c;它们也只是简单对象。如果我们想要描述像一本书&#xff0c;一个人这种复杂对象…

在国企做软件测试工程师是一种什么样的体验:每天过的像打仗一样

工作越来越卷&#xff0c;下班越来越晚。每到本该下班的时间&#xff0c;总有一批双目无神的打工人坐在工位上&#xff0c;生无可恋地继续加班...... 如今的职场&#xff0c;加班似乎已成为一种普遍化的现象。有人说&#xff1a;在高薪的背后&#xff0c;都是一群玩命工作的身影…

H3C技术大全复现之高级路由交换技术 1

华子目录 VLAN 基本技术VLANIEEE 802.1Q交换机端口类型MVRP协议实验测试 VLAN扩展技术Super VLAN产生背景Super vlan&#xff08;相当于vlanif接口&#xff0c;也属于虚拟接口&#xff0c;可以充当网关&#xff09;Sub vlan&#xff08;普通vlan&#xff09;关于代理ARP普通代理…

芒果YOLOv8改进:提升篇:从零开始训练 YOLOv8最新稳定8.1版本教程说明,适用Mac、Windows、Linux端

从零开始训练 YOLOv8 - 最新8.1版本教程说明 本文适用Windows/Linux/Mac&#xff1a;从零开始使用Windows/Linux/Mac训练 YOLOv8 算法项目 《芒果 YOLOv8 目标检测算法 改进》 适用于芒果专栏改进 YOLOv8 算法 文章目录 官方 YOLOv8 算法第一步 配置环境1.1 系列配置1.2 代码…