代码随想录刷题随记31-贪心5

news2024/11/20 20:36:41

代码随想录刷题随记31-贪心5

435. 无重叠区间

leetcode链接
按照右边界排序,从左向右记录非交叉区间的个数。
此时问题就是要求非交叉区间的最大个数。
这里记录非交叉区间的个数还是有技巧的,如图:
在这里插入图片描述
左边界排序可不可以呢?
也是可以的,只不过 左边界排序我们就是直接求 重叠的区间,count为记录重叠区间数。

因为按照右边排序,从左到右进行遍历来到一个位置可以在遍历到一个位置以后,得知之前所有区间右端的最小值。所以就知道有哪些区间和自己不重合。
如果按照左区间排序,就知道左侧最小值可以知道

class Solution {
    public int eraseOverlapIntervals(int[][] intervals) {
         Arrays.sort(intervals,(a,b)->{return Integer.compare(a[1], b[1]);});
         int count=1;
         for(int i=1;i<intervals.length;i++){
             if(intervals[i][0]<intervals[i-1][1]){
                intervals[i][1]=intervals[i-1][1];
             }
             else{
                count++;
             }
         }
         return intervals.length-count;
    }
}

763. 划分字母区间

leetcode链接
统计每一个字符最后出现的位置
从头遍历字符,并更新字符的最远出现下标,如果找到字符最远出现位置下标和当前下标相等了,则找到了分割点
在这里插入图片描述

class Solution {
    public List<Integer> partitionLabels(String s) {
       List<Integer> ret=new LinkedList<>();
       int [] bag=new int[26];
       char[] chars = s.toCharArray();
       for(int i=0;i<s.length();i++){
          bag[chars[i]-'a']=i;
       }
       int last=-1;
       int idx=0;
       for(int i=0;i<chars.length;i++){
           idx=Math.max(idx,bag[chars[i]-'a']);
           if(idx==i){
            ret.add(i-last);
            last=i;
           }
       }
       return ret;
    }
}

56. 合并区间

leetcode链接
本题的本质其实还是判断重叠区间问题。
和452. 用最少数量的箭引爆气球 (opens new window)和 435. 无重叠区间 (opens new window)都是一个套路。

class Solution {
    public int[][] merge(int[][] intervals) {
         Arrays.sort(intervals,(a,b)->{return Integer.compare(a[0], b[0]);});
         int start=intervals[0][0];
         int end=intervals[0][1];
         List<int[]> ret=new LinkedList<>();
         int flag=-1;
         for(int i=1;i<intervals.length;i++){
             if(intervals[i][0]<=intervals[i-1][1]){
                //重合
                //更新end
                intervals[i][1]=Math.max(intervals[i][1],intervals[i-1][1]);
             }
             else{
                //不重合收集结果
                int [] tmp=new int[2];
                tmp[0]=start;
                tmp[1]=intervals[i-1][1];
                ret.add(tmp);
                start=intervals[i][0];
             }
         }
         int [] tmp=new int[2];
         tmp[0]=start;
         tmp[1]=intervals[intervals.length-1][1];
         ret.add(tmp);
            
         return ret.toArray(new int[ret.size()][]);
    }
}

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

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

相关文章

Unity数据持久化之XML

目录 数据持久化XML概述XML文件格式XML基本语法XML属性 C#读取存储XMLXML文件存放位置C#读取XML文件C#存储XML文件 实践小项目必备知识点XML序列化&#xff08;不支持字典&#xff09;XML反序列化IXmlSerializable接口让Dictionary支持序列化反序列化 数据持久化XML概述 什么是…

Docker入门指南:Docker镜像的使用(二)

&#x1f340; 前言 博客地址&#xff1a; CSDN&#xff1a;https://blog.csdn.net/powerbiubiu &#x1f44b; 简介 在本章节中&#xff0c;将深入探讨 Docker 镜像的概念&#xff0c;以及如何使用镜像的一系列操作。 &#x1f4d6; 正文 1 什么是镜像 1.1 Docker镜像的简…

cocos=》带你全面、系统的了解周期函数(含源码分析)

目录 简介 第一 初步了解周期函数 第二 进一步认识周期函数 一、结合节点树来了解一下周期函数 二、节点激活、脚本组件启用 三、node.parent、setParent、addChild 与 周期函数 四、addComponent 与周期函数 五、exectionOrder 与 周期函数 第三 从源码中 学习周期函…

科学碳目标(SBTI)认证是什么?

科学碳目标&#xff08;SBTI&#xff09;认证是一种基于科学的减排目标认证和监测体系&#xff0c;旨在确保企业和国家制定的减排目标符合科学标准&#xff0c;并且能够实现全球气候目标的减缓效应。这个认证体系由全球碳项目和世界资源研究所&#xff08;WRI&#xff09;共同开…

如何判断自己是不是强迫型人格障碍?

什么是强迫型人格障碍&#xff1f; 强迫型人格&#xff0c;也叫强迫固执型人格&#xff0c;当某些强迫型行为严重影响到正常的生活&#xff0c;工作和人际关系&#xff0c;且具有长期稳定的持续性特征&#xff0c;即是强迫型人格障碍。 这类思维和行为特征可以概括为&#x…

leetcode 1235

leetcode 1235 代码 class Solution { public:int jobScheduling(vector<int>& startTime, vector<int>& endTime, vector<int>& profit) {int n startTime.size();vector<vector<int>> jobs(n);for(int i0; i<n; i){jobs[i] …

【Anaconda】升级Anaconda Navigator提示JSONDecoderError,删除.condarc文件后搞定

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、报错&#xff1a;JSONDecoderError二、错误原因三、解决问题总结 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 时间长未升级Ana…

本地搭建springboot服务并实现公网远程调试本地接口

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

2024/5/9 QTday4

完成定时器制作 #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);connect(&timer2, &QTimer::timeout, this, &Widget::label_begin);connect(&…

数据库(MySQL)—— 索引

数据库&#xff08;MySQL&#xff09;—— 索引 什么是索引创建索引使用 CREATE INDEX 语句使用 ALTER TABLE 语句在创建表时定义索引特殊类型索引注意事项 举个例子无索引的情况有索引的情况为什么索引快索引的结构 今天我们来看看MySQL中的索引&#xff1a; 什么是索引 MyS…

0509_IO4

练习1&#xff1a; 创建一对父子进程&#xff1a; 父进程负责向文件中写入 长方形的长和宽 子进程负责读取文件中的长宽信息后&#xff0c;计算长方形的面积 1 #include <stdio.h>2 #include <string.h>3 #include <stdlib.h>4 #include <sys/types.h>…

PyCharm安装详细教程

PyCharm安装详细教程 PyCharm简介及其下载网站 PyCharm是由JetBrains打造的一款Python IDE(Integrated Development Environment&#xff0c;集成开发环境)&#xff0c;带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具。PyCharm提供了代码编辑、调试、语法高亮…

【BUUCTF】[RoarCTF 2019]Easy Java1

工具&#xff1a;hackbar发包&#xff0c;bp抓包。 解题步骤&#xff1a;【该网站有时候send不了数据&#xff0c;只能销毁靶机重试】 这里的登录界面是个天坑【迷魂弹】 直接点击help&#xff0c;然后进行打开hackbar——通过post请求&#xff0c;再通过bp抓包&#xff0c;…

DetCLIPv3:面向多功能生成开放词汇的目标检测

DetCLIPv3:面向多功能生成开放词汇的目标检测 摘要IntroductionRelated worksMethod DetCLIPv3: Towards Versatile Generative Open-vocabulary Object Detection 摘要 现有的开词汇目标检测器通常需要用户预设一组类别&#xff0c;这大大限制了它们的应用场景。在本文中&…

长难句打卡5.9

For example, the Long Now Foundation has as its flagship project a mechanical clock that is designed to still be marking time thousands of years hence. 例如,今日永存资金会将机械钟表视为旗舰项目,因此该钟表旨在为未来几千年保持计时。 Foundation n.基金会flag…

如何快速注册企业邮箱?只需要三步

快速注册一个企业邮箱&#xff0c;只需要以下三个步骤&#xff1a;一是挑选适合的邮箱版本和邮箱价格&#xff0c;二是填写必要的企业信息&#xff0c;三是完成企业邮箱的基础配置。完成上述三个步骤&#xff0c;企业就能够拥有一个专属的企业邮箱。 一、挑选适合的邮箱版本 …

jpg照片怎么压缩到10k?压缩照片并不难

jpg照片怎么压缩到10k&#xff1f;随着数字摄影的普及&#xff0c;我们手机或电脑中存储的照片数量越来越多&#xff0c;而这些高分辨率的照片往往会占用大量的存储空间。为了节省空间&#xff0c;将JPG照片压缩到较小的文件大小成为了许多人的需求。本文将为您介绍几款可以将J…

《基于GNU-Radio和USRP的雷达通信系统的实现》文献阅读

文章目录 前言一、摘要二、引言三、联合系统实施1、基本原理2、实验方案 四、软件设置1、发射机2、接收机 五、实验结果1、实验设置2、波形3、室内外对比4、不同参数的结果 六、结论七、参考文献八、论文自取九、阅读收获 前言 本文记录《基于GNU-Radio和USRP的雷达通信系统的实…

新手做抖音小店,应该怎么做才挣钱?按照这个思路来!

大家好&#xff0c;我是电商糖果 别人在抖音创业开店&#xff0c;都可以赚到钱&#xff0c;他们是怎么做到的。 作为一个新手&#xff0c;应该怎么做呢&#xff1f; 我相信这是很多人想开店的朋友&#xff0c;前期都会思考的问题。 下面糖果就来说一下&#xff0c;新手做抖…

vue 代码样式问题

部分电脑存在样式错乱问题&#xff0c;部分电脑样式正常。最后发现是样式写在 el-col 里面导致的。 注意&#xff1a;写样式不要放在 el-row 或者 el-row &#xff0c;导致部分电脑会出现莫名其妙的样式问题 <el-row class"detail"><el-col class"it…