代码随想录训练营Day 31|Python|Leetcode|435. 无重叠区间 ● 763.划分字母区间 ● 56. 合并区间

 435. 无重叠区间 

给定一个区间的集合 intervals ,其中 intervals[i] = [starti, endi] 。返回 需要移除区间的最小数量,使剩余区间互不重叠 

解题思路:

本题重点在于求重叠区间,将所有区间按照左边界从小到大排序。从第二个区间开始与上一个区间进行比较,如果当前区间左边界小于上一区间右边界,说明区间重叠,并将两区间有边界定义为较小的有边界,用来和下一区间进行比较。

class Solution:def eraseOverlapIntervals(self, intervals: List[List[int]]) -> int:if not intervals:return 0#排序intervals.sort(key = lambda x: (x[0],x[1]))result = 0for i in range(1, len(intervals)):if intervals[i-1][1]>intervals[i][0]:#区间重叠result += 1intervals[i][1] = min(intervals[i-1][1], intervals[i][1])return result

 763.划分字母区间 

给你一个字符串 s 。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。

注意,划分结果需要满足:将所有划分结果按顺序连接,得到的字符串仍然是 s 。

返回一个表示每个字符串片段的长度的列表。

解题思路:

要想得到最大区间,需要先遍历整个s,记录每个字母的最大index,例如用hash_table记录。设置start,end记录每个字符片段的起始,并在第二次遍历的时候更新end,当i==end时说明遍历到了当前字符片段的终点,添加进result并更新start。

class Solution:def partitionLabels(self, s: str) -> List[int]:hash_table = {}for i , j in enumerate(s):hash_table[j] = i#get the farest index for each letterresult = []start = 0end = 0for i,j in enumerate(s):end = max(end, hash_table[j])#update the end idx to the farestif i == end:#meet the last idx of this intervalresult.append(end-start+1)start = i+1return result

 56. 合并区间

以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。

解题思路:

本题重点在于发现重叠区间时,直接在result中进行删改而不是在interval中更新,避免后续在result中更改长度。先在result中添加进第一个区间,剩下逻辑与leetcode435类似,如果发现左区间小于上一个右区间,在result中更改最后一个的右区间;否则,在result中添加当前区间。

class Solution:def merge(self, intervals: List[List[int]]) -> List[List[int]]:intervals.sort(key = lambda x:x[0])result = []if len(intervals)==1:result.append(intervals[0])return resultresult.append(intervals[0])for i in range(1, len(intervals)):if intervals[i][0]<=result[-1][1]:#有重叠,直接在result中更新# intervals[i][0] = min(intervals[i-1][0], intervals[i][0])result[-1][1] = max(result[-1][1], intervals[i][1])else:#添加当前区间result.append(intervals[i])return result

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

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

相关文章

【C/C++笔试练习】OSI分层模型、源端口和目的端口、网段地址、SNMP、状态码、tcp报文、域名解析、HTTP协议、计算机网络、美国节日、分解因数

文章目录 C/C笔试练习选择部分&#xff08;1&#xff09;OSI分层模型&#xff08;2&#xff09;源端口和目的端口&#xff08;3&#xff09;网段地址&#xff08;4&#xff09;SNMP&#xff08;5&#xff09;状态码&#xff08;6&#xff09;tcp报文&#xff08;7&#xff09;域…

美国站群服务器上常见的操作系统选择指南

美国站群服务器上常见的操作系统选择指南 美国站群服务器的选择操作系统对于服务器的性能和功能至关重要。本文将为您介绍在美国站群服务器上常见的操作系统选择指南&#xff0c;以帮助您做出明智的决策。 在选择美国站群服务器时&#xff0c;选择合适的操作系统是至关重要的…

鸿蒙OpenHarmony【标准系统 烧录】(基于RK3568开发板)

烧录 烧录是指将编译后的程序文件下载到芯片开发板上的动作&#xff0c;为后续的程序调试提供基础。DevEco Device Tool提供一键烧录功能&#xff0c;操作简单&#xff0c;能快捷、高效的完成程序烧录&#xff0c;提升烧录的效率。 RK3568的镜像烧录通过Windows环境进行烧录&…

Agent AI智能体的未来

Agent AI智能体的未来 随着Agent AI智能体的智能化水平不断提高&#xff0c;它们在未来社会中的角色、发展路径以及可能带来的挑战也引起了广泛关注。快来分享一下你的看法吧~ 提醒&#xff1a;在发布作品前&#xff0c;请把不需要的内容删掉。 方向一&#xff1a;技术进步与…

三丰云搭建QQ-bot的服务器---注册账号

网址&#xff1a;https://www.sanfengyun.com >> 三丰云免费云服务器 本人使用的是qq官方提供的bot&#xff0c;因为要用于群聊&#xff0c;所以使用的是企业bot开发 群聊场景&#xff1a;仅支持企业主体【个人主体暂不支持】频道场景&#xff1a;企业主体与个人主体均可…

【软测学习笔记】Linux入门Day01

&#x1f31f;博主主页&#xff1a;我是一只海绵派大星 &#x1f4da;专栏分类&#xff1a;软件测试笔记 &#x1f4da;参考教程&#xff1a;黑马教程❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 目录 1、操作系统 2、Linux发展历程 3、命令行程序 4、cd 切换文件夹…

pytorch库 01 安装Anaconda、Jupyter,Anaconda虚拟环境连接pycharm

文章目录 一、安装Anaconda1、卸载Anaconda&#xff08;可选&#xff09;2、下载并安装Anaconda3、配置环境变量4、桌面快捷方式 二、安装 PyTorch&#xff08;GPU 版&#xff09;库1、创建虚拟环境&#xff0c;并安装一些常用包2、GPU 基础3、检查驱动4、安装CUDA&#xff08;…

采用公共云计算有助于减轻环境影响吗?

公共云计算在一定程度上可以减轻环境影响&#xff0c;但也存在一些复杂的因素需要考虑。 资源共享和优化利用: 公共云平台可以帮助多个用户共享服务器和其他基础设施资源&#xff0c;这样可以更有效地利用硬件资源&#xff0c;减少能源消耗和物理资源的浪费。 能源效率: 大型云…

Spring Boot | Spring Security ( SpringBoot安全管理 )、Spring Security中 的 “自定义用户认证“

目录 : Spring Boot 安全管理 &#xff1a;一、Spring Security 介绍二、Spring Security 快速入门2.1 基础环境搭建 :① 创建Spring Boot 项目② 创建 html资源文件③ 编写Web控制层 2.2 开启安全管理效果测试 :④ 添加 spring-boot-starter-security 启动器⑤ 项目启动测试 三…

YOLOv5模型使用云服务器autoDL训练

本篇内容讲述如何租用autoDL云服务器&#xff0c;以及使用vscode的ssh远程连接服务器和文件上传方法 目录 一、进入autoDL二、VSCode连接三、文件上传 一、进入autoDL 地址&#xff1a;https://www.autodl.com/home 第一步&#xff1a;进入autoDL地址后&#xff0c;首先进行…

(Oracle)SQL优化案例:大表hash连接优化

真实SQL优化案例 为避免项目隐私泄露&#xff1b; 本篇文章所有表名、字段名&#xff0c;包括执行计划内的对象名称都做了处理。 本篇文章是将速度再10秒左右的SQL优化到1.5s左右&#xff1b; 因为没有优化到1s以下&#xff0c;所以可能还存在更优优化方法&#xff1b; 但其中…

linux进入单用户模式指引

文章目录 引言I 通过GRUB进入单用户模式1.1 倒计时界面的操作1.2 GRUB1.3 内核参数编辑界面1.4 更多内核参数编辑界面II 预备知识:Linux用户模式引言 应用场景: root密码重置: 用passwd命令修改root修复登录相关的配置:/etc/pam.d/login 和 /etc/pam.d/sshd 案例:Centos6进…

文件上传复习(upload-labs18-19关)

Pass-18&#xff08;条件竞争&#xff09; 代码和第17关大差不差&#xff0c;所以查看提示 需要用到代码审计 上传图片木马配合解析漏洞进行getshell 新建一句话木马 18.php&#xff0c;代码为&#xff1a; <?php fputs(fopen(../upload/shell18.php,w),<?php phpin…

Unreal Engine添加UGameInstanceSubsystem子类

点击C类文件夹&#xff0c;在右边的区域点击鼠标右键&#xff0c;在弹出的菜单中选择“新建C类”在弹出的菜单中选中“显示所有类”&#xff0c;选择GameInstanceSubsystem作为父类, 点击“下一步”按钮输入子类名称“UVRVIUOnlineGameSubsystem”&#xff0c;选择插件作为新类…

【大数据与云计算】虚拟机安装Linux

前言&#xff1a;使用Linux系统对大数据学习必不可少&#xff0c;本文主要介绍虚拟机安装linux的流程 文章目录 一、 下载VMware二、下载Linux三、安装Linux 一、 下载VMware 官网链接 下载VMware-player&#xff0c;一直下一步安装即可。 二、下载Linux 点击链接直接下载&…

第一个大型汽车ITU-T车载语音通话质量实验室投入使用

中国汽车行业蓬勃发展&#xff0c;尤其是新能源汽车风起云涌&#xff0c;无论是国内还是海外需求旺盛的趋势下&#xff0c;除乘用车等紧凑型车外&#xff0c;中型汽车如MPV、小巴、小型物流车&#xff0c;大型汽车如重卡、泥头车等亦加入了手机互联、智驾的科技行列&#xff0c…

PD虚拟机(Parallels Desktop)2024mac苹果电脑19免费版下载

PD虚拟机&#xff08;Parallels Desktop 虚拟机&#xff09;是一款知名的系统虚拟化软件&#xff0c;PD虚拟机允许用户在一个操作系统中同时运行另一个或者多个操作系统。这种技术在多种场景中非常有用&#xff0c;比如程序开发、专业研究、游戏对战等&#xff0c;尤其是对于需…

Kafka 3.x.x 入门到精通(03)——Kafka基础生产消息

Kafka 3.x.x 入门到精通&#xff08;03&#xff09;——对标尚硅谷Kafka教程 2. Kafka基础2.1 集群部署2.2 集群启动2.3 创建主题2.4 生产消息2.4.1 生产消息的基本步骤2.4.2 生产消息的基本代码2.4.3 发送消息2.4.3.1 拦截器2.4.3.1.1 增加拦截器类2.4.3.1.2 配置拦截器 2.4.3…

LangChain之各个输出解析器的使用

Model I/O 在LangChain中&#xff0c;Model I/O被称为&#xff1a;模型的输入与输出&#xff0c;其有输入提示(Format)、调用模型(Predict)、输出解析(Parse)等三部分组成。 makefile 复制代码 1.提示模板: LangChain的模板允许动态选择输入&#xff0c;根据实际需求调整输入内…

从业务经营到企业战略,构建制药企业数字化应用新能力

我国医药的消费正处在一个高速增长的阶段&#xff0c;人口增长、老龄化加剧、经济总体增长、人均消费增长、农村收入提高&#xff0c;这五大因素是医药市场蓬勃发展的动力。在这五大因素的驱动下&#xff0c;我国的医药市场需求将会在未来相当长的时间内保持高速增长。从多个环…