news 2026/6/15 14:35:30

力扣hot100:划分字母区间

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
力扣hot100:划分字母区间

题目描述:

题目解析:

题目要求对字符串进行分割,使得每个字母最多只出现在一个分割片段中
在满足这个条件的前提下,需要返回每个分割片段的长度。

换句话说:

1. 同一个字符不能跨越多个片段

2. 一旦某个字符出现在当前片段中,那么这个片段必须包含该字符在字符串中的所有出现位置

3. 分割后的片段要尽可能靠前、数量尽可能多

因此,本题的本质并不是“随意切字符串”,而是要找到一种合理的切分方式,使字符的出现范围不会被打断。

思路分析:

解决这道题的关键,在于提前知道每个字符最远会出现到哪里。

1. 预处理字符的最后位置

由于字符串只包含小写字母,可以先遍历字符串,记录每个字符在字符串中最后一次出现的下标。
这样一来,当我们在某个位置看到一个字符时,就能立刻知道:当前分割区间至少要延伸到这个字符的最后出现位置。

2. 用区间合并的思路遍历字符串

接下来,从左到右遍历字符串,并维护一个“当前分割区间”:区间的左端点是当前片段的起始位置。区间的右端点表示:当前片段必须覆盖到的最远位置。在遍历过程中,每遇到一个字符,就用它的最后出现位置来更新当前区间的右端点,保证这个字符不会出现在区间之外。

3. 何时可以完成一次分割

当遍历位置刚好走到当前区间的右端点时,说明:当前片段中出现的所有字符都已经完整地包含在这个区间内不会再延伸到后面的位置此时就可以安全地切分出一个片段,记录它的长度,并从下一个位置开始新的片段。

4. 思路本质

从整体来看,这道题的核心思想可以概括为:先确定每个字符的“活动范围”,再把这些范围不断合并成若干不重叠的区间,每一个最终合并完成的区间,就是一个合法的分割片段

代码:

class Solution { public List<Integer> partitionLabels(String s) { char[] a=s.toCharArray(); int n=a.length; int[] last=new int[26]; for(int i=0;i<n;i++){ last[a[i]-'a']=i; } List<Integer> res=new ArrayList<>(); int start=0,end=0; for(int i=0;i<n;i++){ end=Math.max(last[a[i]-'a'],end); if(i==end){ res.add(end-start+1); start=end+1; } } return res; } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/15 10:38:38

Whisper性能优化:GPU加速让语音识别速度提升3倍

Whisper性能优化&#xff1a;GPU加速让语音识别速度提升3倍 1. 为什么Whisper需要性能优化&#xff1f; OpenAI的Whisper模型自发布以来&#xff0c;凭借其强大的多语言语音识别能力迅速成为行业标杆。尤其是large-v3版本&#xff0c;在99种语言的自动检测与高精度转录方面表…

作者头像 李华
网站建设 2026/6/14 18:31:49

fft npainting lama模型更新计划:未来功能演进预测

fft npainting lama模型更新计划&#xff1a;未来功能演进预测 1. 引言&#xff1a;图像修复技术的现在与未来 你有没有遇到过这样的情况&#xff1f;一张珍贵的老照片上出现了划痕&#xff0c;或者截图里有个碍眼的水印怎么都去不掉。过去我们只能靠PS一点点手动修补&#x…

作者头像 李华
网站建设 2026/6/15 11:43:08

2026年iPaas系统集成平台综合分析及选型参考

2026年iPaas平台综合分析及选型参考 国内顶尖数字化研究机构发布的《2026iPaas平台权威测评报告》&#xff0c;结合200企业实际使用数据与技术架构评估&#xff0c;从流程自动化、系统连接能力、安全性等核心维度开展全面测评。同期发布的《2026企业数字化集成白皮书》显示&am…

作者头像 李华
网站建设 2026/6/15 11:44:27

Chatbox终极指南:开源AI桌面客户端完整解析与技术架构深度剖析

Chatbox终极指南&#xff1a;开源AI桌面客户端完整解析与技术架构深度剖析 【免费下载链接】chatbox Chatbox是一款开源的AI桌面客户端&#xff0c;它提供简单易用的界面&#xff0c;助用户高效与AI交互。可以有效提升工作效率&#xff0c;同时确保数据安全。源项目地址&#x…

作者头像 李华