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

代码随想录刷题随记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]){//重合//更新endintervals[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.mzph.cn/pingmian/9237.shtml

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

相关文章

多态的概念及运用

多态 概念&#xff1a;多态是指同一种行为具有多个不同的表现形式或形态的能力。在Java中&#xff0c;多态是指一个对象的实际类型可以是其父类或接口类型&#xff0c;但在运行时会根据其实际类型来调用相应的方法。是面向对象的第三大特征&#xff0c;建立于封装和继承之上。…

mysql安装及基础设置

关系型数据库 MySQL是一种关系型数据库管理系统&#xff0c;采用了关系模型来组织数据的数据库&#xff0c;关系数据库将数据保存在不同的表中&#xff0c;用户通过查询 sql 来检索数据库中的数据。 yum 方式安装 mysql # yum -y install mysql-server # systemctl start my…

信号槽机制

目录 信号槽机制 Qt 中的信号 槽函数 槽函数定义 通过代码创建槽函数 通过ui文件创建槽函数 自定义信号 带参数的信号与槽 信号槽断开绑定 信号槽机制 信号和槽机制是 Qt 中一个非常重要的一个机制, 因为有信号和槽机制, 就可以通过某些条件的触发来调用这些槽函数, …

[力扣题解]131. 分割回文串

题目&#xff1a;131. 分割回文串 思路 回溯法 切割问题&#xff1a;在某个地方画一个挡板&#xff0c;比如aab可以画成&#xff1a;a|ab&#xff0c;a|a|b&#xff0c;每个字母之间理论上都可画一个挡板&#xff1b; 抽象成当前n个字母&#xff0c;画一道挡板&#xff0c;挡…

Django框架之Ajax进阶

一、前后端传输数据的编码格式(contentType) 此内容主要是研究post请求数据的编码格式&#xff0c;因为get请求数据就是直接放在url后面的。 首先我们在前面叙述过可以朝后端发送post请求的方式有 form表单Ajax 然后现在又了解到前后端传输数据的编码格式有 urlencodedfor…

啰嗦一下开发语言

这次不发版了&#xff0c;直接啰嗦一下吧 MySQL Binlog Digger 4.33这个版本一直迟迟没有推出&#xff0c;因为原来用Python写的版本已经没有多少优化的空间了&#xff0c;而号称性能强劲的Python 3.13官方一直没发版。 Python编写效率高是人所共知&#xff0c;但Python执行效…

ASP.NET信息安全研究所设备管理系统的设计与实现

摘 要 以研究所的设备管理系统为背景&#xff0c;以研究所设备管理模式为研究对象&#xff0c;开发了设备管理系统。设备管理系统是设备管理与计算机技术相结合的产物&#xff0c;根据系统的功能需求分析与定义的数据模式&#xff0c;分析了应用程序的主要功能和系统实现的主…

zabbix动作执行命令失效不起作用?

1. zabbix在web界面设置完主机组&#xff0c;主机&#xff0c;监控项&#xff0c;触发器&#xff0c;动作之后 监控项监控到了&#xff0c;触发器触发动作&#xff0c;但是执行的指令不起作用 流程 在zabbix-agent端将nginx服务down掉&#xff0c;zabbix会自动监控并执行重启的…

TypeScript学习日志-第二十一天(声明文件d.ts)

声明文件d.ts 在使用 Typescript 并使用第三方库 的时候 我们会发现会有很多的提示或补全&#xff0c;这都是声明文件起的作用&#xff0c;但是有写冷门的第三方库是没有声明文件的&#xff0c;这时候引用就会报错&#xff0c;我们就使用 express 库作为例子来展示一下&#x…

CMake创建跨平台OPenGL工程(学习笔记)

一、跨平台环境基本配置 1、环境搭建 1&#xff09;linux OpenGL环境搭建参考&#xff1a;ubuntu18.04 OpenGL开发&#xff08;显示YUV&#xff09;_ubuntu opengl-CSDN博客 https://blog.51cto.com/cerana/6433535 2&#xff09;windows下环境搭建 OpenGLVisual Studio20…

SDUT java lab7.4

7-4 sdut-JAVA-Vowel And Consonant Count 分数 6 全屏浏览 切换布局 作者 马新娟 单位 山东理工大学 You are required to write a Java application program that accepts a word from the user and outputs the total numbers of vowels and the total number of conson…

【Linux系统】进程控制

再次理解进程 进程&#xff1a;内核的相关管理数据结构(task_struct(进程控制块PCB)&#xff0c;mm_struct(地址空间)&#xff0c;页表) 代码和数据 那么如何理解进程具有独立性&#xff1f; 我们之前已经学习过进程控制块啊&#xff0c;地址空间啊&#xff0c;页表啊&…

GitHub Actions 手动触发方式

目录 前言 Star Webhook 手动触发按钮 前言 GitHub Actions 是 Microsoft 收购 GitHub 后推荐的一款 CI/​CD 工具早期可能是处于初级开发阶段&#xff0c;它的功能非常原生&#xff0c;甚至没有直接提供一个手动触发按钮一般的触发方式为代码变动&#xff08;push 、pull…

【2024版】最新6款漏洞扫描工具来了!(附下载)看完这一篇就够了

目录 一、Nessus 二、AWVS 三、ZAP 四、w3af 五、北极熊 六、御剑 七、网络安全学习路线 &#xff08;2024最新整理&#xff09; 八、学习资料的推荐 1.视频教程 2.SRC技术文档&PDF书籍 3.大厂面试题 特别声明&#xff1a; 渗透测试收集信息完成后&#xf…

每日两题 / 104. 二叉树的最大深度 102. 二叉树的层序遍历(LeetCode热题100)

104. 二叉树的最大深度 - 力扣&#xff08;LeetCode&#xff09; 递归判断&#xff0c;当前节点的最大深度为1 max(左节点的最大深度&#xff0c;右节点的最大深度) /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* …

Ansible---inventory 主机清单

一、inventory 主机清单 1.1、inventory介绍 hosts配置文件位置&#xff1a;/etc/ansible/hosts Inventory支持对主机进行分组&#xff0c;每个组内可以定义多个主机&#xff0c;每个主机都可以定义在任何一个或多个主机组内。 1.2、inventory中的变量 Inventory变量名含义…

八、VUE内置指令

一、初识VUE 二、再识VUE-MVVM 三、VUE数据代理 四、VUE事件处理 五、VUE计算属性 六、Vue监视属性 七、VUE过滤器 七、VUE内置指令 九、VUE组件 v-text 向其所在的节点中渲染文本内容。 (纯文本渲染)与插值语法的区别&#xff1a;v-text会替换掉节点中的内容&#xff0c;{{x…

2024OD机试卷-小华地图寻宝 (java\python\c++)

题目:小华地图寻宝 题目描述 小华按照地图去寻宝,地图上被划分成 m 行和 n 列的方格,横纵坐标范围分别是 [0, n-1] 和 [0, m-1]。 在横坐标和纵坐标的数位之和不大于 k 的方格中存在黄金(每个方格中仅存在一克黄金),但横坐标和纵坐标之和大于 k 的方格存在危险不可进入…

springboot3项目练习详细步骤(第一部分:用户业务模块)

目录 环境准备 用户模块 注册 注册接口文档 ​编辑 实现结构 Spring Validation 登录 登录的接口文档 实现登录逻辑 JWT令牌 完善登录认证 拦截器 获取用户详细信息 接口文档 Usercontroller类中编写方法接口 忽略属性返回 优化代码ThreadLocal 更新用户基本信…

汉译英早操练-(二十八)

hello&#xff0c;汉语在表达成英语的时候你是否有困惑。不要着急&#xff0c;一起来看看需要我们注意一些什么&#xff0c;慢慢的就不恐惧用英语表达汉语这件事了。给大家奉献系列文章&#xff0c;供大家参考学习。 往期回顾在这里&#xff0c;请随便点击过去查看&#xff0c;…