代码随想录训练营Day36:● 435. 无重叠区间 ● 763.划分字母区间 ● 56. 合并区间

news2024/11/25 12:35:56

435. 无重叠区间

题目链接

https://leetcode.cn/problems/non-overlapping-intervals/description/

题目描述

在这里插入图片描述

思路

直接统计重叠区间的个数,就是需要删除的个数

在这里插入图片描述

public int eraseOverlapIntervals(int[][] intervals) {
        Arrays.sort(intervals,(a,b)-> Integer.compare(a[0],b[0]));
        if(intervals.length == 0) return 0;
        int count = 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;
    }

763.划分字母区间

题目链接

https://leetcode.cn/problems/partition-labels/description/

题目描述

在这里插入图片描述

思路

在这里插入图片描述
对于上边的字符串 s = “ababcbacadefegde”
最开始先包含 a ,根据题目要求,需要把所有的 a 都囊括进一个区间里边,所以找到最远的 a 为下标 8 的位置,但是在囊括 a 的同时,需要把 b c 囊括进来,所以需要再次找 b c 的最远位置,统计过 a b c 的最远位置之后进行比较,这一个区间的最远位置就是 8 ,因此 8 之前就为一个分割区间

class Solution {
    public List<Integer> partitionLabels(String s) {
        ArrayList<Integer> list = new ArrayList<>();
        //先统计每个字符出现的最远位置
        //遍历字符串
        int[] hash = new int[26];
        for (int i = 0; i < s.length(); i++) {
            hash[s.charAt(i) - 'a'] = i; 
        }
        //定义区间的左右边界
        int left = 0,right = 0;
        for (int i = 0; i < s.length(); i++) {
            right = Math.max(right,hash[s.charAt(i) - 'a']);
            //i==right  说明已经到了这个字符串的最右边
            if(i==right){
            //将长度加到结果列表中
                list.add(right-left+1);
                left = i+1;
            }
        }
        return list;
    }
}

56. 合并区间

题目链接

https://leetcode.cn/problems/merge-intervals/description/

题目描述

在这里插入图片描述

思路

在这里插入图片描述
思路在代码注释中均有描述

public int[][] merge(int[][] intervals) {
        //存放最后的结果
        ArrayList<int[]> list = new ArrayList<>();
        if(intervals.length==0) return new int[0][];
        //按照左边界进行排序
        Arrays.sort(intervals,(a,b) -> Integer.compare(a[0],b[0]));
        list.add(intervals[0]);
        for (int i = 1; i < intervals.length; i++) {
            if(intervals[i][0] <= list.get(list.size()-1)[1]){
                //说明重叠了,需要进行合并
                //区间的最小边界肯定是已经存进去的左边界,所以不用做更新
                //需要更新右边界,将当前元素和已经存进去的右边界进行比较,取大的一方
                list.get(list.size()-1)[1] = Math.max(intervals[i][1],list.get(list.size()-1)[1]);
            }else {
                //没有重叠,直接添加到结果中,不做任何操作
                list.add(intervals[i]);
            }
        }
        return list.toArray(new int[list.size()][]);
    }

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

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

相关文章

【火猫TV】NBA:快船突然崩盘众人迷茫,都是续约惹的祸!

本赛季快船队的表现就像过山车一般&#xff0c;起起伏伏让人看得惊心动魄&#xff0c;他们在赛季初期一度找不到胜利的办法&#xff0c;后来威少主动担任替补&#xff0c;球队将组织大权给了哈登&#xff0c;然后战绩一路飙升。可是到了赛季末&#xff0c;快船队的胜率出现了大…

2024软件设计师备考讲义——UML(统一建模语言)

UML的概念 用例图的概念 包含 <<include>>扩展<<exted>>泛化 用例图&#xff08;也可称用例建模&#xff09;描述的是外部执行者&#xff08;Actor&#xff09;所理解的系统功能。用例图用于需求分析阶段&#xff0c;它的建立是系统开发者和用户反复…

HarmonyOS 应用开发之UIAbility组件启动模式

UIAbility的启动模式是指UIAbility实例在启动时的不同呈现状态。针对不同的业务场景&#xff0c;系统提供了三种启动模式&#xff1a; singleton&#xff08;单实例模式&#xff09;multiton&#xff08;多实例模式&#xff09;specified&#xff08;指定实例模式&#xff09;…

Day24:回溯法 LeedCode 77.组合

回溯法解决的问题都可以抽象为树形结构 for循环就是遍历集合区间&#xff0c;可以理解一个节点有多少个孩子&#xff0c;这个for循环就执行多少次。 从图中看出for循环可以理解是横向遍历&#xff0c;backtracking&#xff08;递归&#xff09;就是纵向遍历&#xff0c;这样就把…

3D目标检测综述笔记

3D Object Detection for Autonomous Driving: A Review and New Outlooks https://arxiv.org/pdf/2206.09474.pdf 目录 0.background​编辑 1.1表示形式 1.2感知输入 1.3数据集 1.4评估指标 1. LiDAR-based 3D Object Detection 2.数据表征 2.1 point-based​ 2.1.…

iOS - Runloop的运行逻辑

文章目录 iOS - Runloop的运行逻辑1. 苹果官方的Runloop执行图2. Mode里面的东西2.1 Source02.2 Source12.3 Timers2.4 Observers 3. 执行流程3.1 注意点 4. Runloop休眠 iOS - Runloop的运行逻辑 1. 苹果官方的Runloop执行图 2. Mode里面的东西 2.1 Source0 触摸事件处理pe…

4G/5G防爆布控球

#防爆布控球 #远程实时监控 #移动应急指挥 #高清图像采集 #防爆安全认证 4G/5G防爆布控球 M130-EX防爆布控球是针对石化装置、石油平台、燃气、化工、制药、煤炭、冶炼、船舶制造、纺织等易燃易爆环境及危险场所而开发设计的防爆智能一体化电气设备。 产品型号&#xff1a;M13…

Docker搭建FastDFS + Ngnix图片文件服务器

安装教程 一、环境与备件安装&#xff08;安装Docker&#xff09; 更新系统&#xff1a;首先&#xff0c;确保系统已更新到最新版本。 a. 更新Ubuntu系统命令&#xff1a; sudo apt update sudo apt upgradeb. 更新CentOS系统命令&#xff1a; sudo yum update安装依赖项&…

剑指Offer题目笔记20(在数组范围内二分查找)

面试题72&#xff1a; 问题&#xff1a; ​ 输入一个非负整数&#xff0c;计算它的平方根。 解决方案&#xff1a; 使用二分查找。一个数x的平方根一定小于或等于x&#xff0c;同时&#xff0c;除了0之外的所有非负整数的平方根都大于等于1&#xff0c;故该数的平方根在1到x…

AI大模型引领金融创新变革与实践【文末送书-46】

文章目录 AI大模型的定义与特点AI大模型在金融领域的应用 01 大模型在金融领域的 5 个典型应用场景02 大模型在金融领域应用所面临的风险及其防范03 AIGC 技术的科林格里奇困境04 金融机构使用 AIGC 技术的 4 条可能路径AIGC重塑金融&#xff1a;AI大模型驱动的金融变革与实践…

.NET CORE使用Redis分布式锁续命(续期)问题

结合上一期 .NET CORE 分布式事务(三) DTM实现Saga及高并发下的解决方案(.NET CORE 分布式事务(三) DTM实现Saga及高并发下的解决方案-CSDN博客)。有的小伙伴私信说如果锁内锁定的程序或者资源未在上锁时间内执行完&#xff0c;造成的使用资源冲突&#xff0c;需要如何解决。本…

Spring 源码调试问题 ( List.of(“bin“, “build“, “out“); )

Spring 源码调试问题 文章目录 Spring 源码调试问题一、问题描述二、解决方案 一、问题描述 错误&#xff1a;springframework\buildSrc\src\main\java\org\springframework\build\CheckstyleConventions.java:68: 错误: 找不到符号 List<String> buildFolders List.of…

OpenHarmony无人机MAVSDK开源库适配方案分享

MAVSDK 是 PX4 开源团队贡献的基于 MavLink 通信协议的用于无人机应用开发的 SDK&#xff0c;支持多种语言如 C/C、python、Java 等。通常用于无人机间、地面站与通信设备的消息传输。 MAVLink 是一种非常轻量级的消息传递协议&#xff0c;用于与无人机&#xff08;以及机载无…

【Unity】TextMeshPro富文本

启用富文本 在Unity里&#xff0c;如果需要使用富文本&#xff0c;首先需要开启Rich Text 如果不开启Rich Text&#xff0c;就会在UI上显示富文本代码 1.粗体 <b>Game</b> Over2.斜体 <i>Game</i> Over3.下划线 <u>Game</u> Over4…

6个常用的界面原型设计工具,新手小白看!

界面原型设计是现代设计师必备的技能之一。界面原型是设计数字产品或应用程序的重要步骤&#xff0c;将概念转化为具体的互动界面。对于初学者小白来说&#xff0c;选择一款易于使用、功能强大的界面原型设计工具非常重要。本文将介绍 10 种常用的界面原型设计工具&#xff0c;…

基于8086CPU和8255并行接口扩展系统设计

**单片机设计介绍&#xff0c;基于8086CPU和8255并行接口扩展系统设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于8086CPU和8255并行接口扩展系统设计的主要目的是通过8255并行接口芯片实现对外部设备的并行接口扩展&…

162.乐理基础-和声大调、旋律大调

内容参考于&#xff1a; 三分钟音乐社 上一个内容&#xff1a;161.音程、和弦板块总结、重点、建议 首先需要回忆一下18.调式、自然大调式&#xff08;C大调、D大调。。。&#xff09;与19.音阶是什么、有什么用&#xff0c;在18.调式、自然大调式&#xff08;C大调、D大调。…

代码随想录训练营Day37:● 738.单调递增的数字 ● 968.监控二叉树 ● 总结

738.单调递增的数字 题目链接 https://leetcode.cn/problems/monotone-increasing-digits/description/ 题目描述 思路 从后往前遍历数字的每一位&#xff0c;如果前一位大于后一位&#xff0c;则将其减一&#xff0c;后边的一位取 i-9 中最大的 解答的两点疑惑&#xff1a;…

uniapp 使用命令行创建vue3 ts 项目

命令行创建 uni-app 项目&#xff1a; vue3 ts 版 npx degit dcloudio/uni-preset-vue#vite-ts 项目名称注意 Vue3/Vite版要求 node 版本^14.18.0 || >16.0.0 如果下载失败&#xff0c;请去gitee下载 https://gitee.com/dcloud/uni-preset-vue/repository/archive/vite-ts…

2020年30米二级分类北京市土地利用数据

引言 北京市省土地利用数据产品是指基于Landsat TM/ETM/OLI遥感影像&#xff0c;采用遥感信息提取方法&#xff0c;并结合野外实测&#xff0c;以及参照国内外现有的土地利用/土地覆盖分类体系&#xff0c;经过波段选择及融合&#xff0c;图像几何校正及配准并对图像进行增强处…