news 2026/8/30 22:05:34

力扣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/8/23 6:43:36

2026年开源大模型趋势入门必看:DeepSeek-R1蒸馏模型实战部署

2026年开源大模型趋势入门必看&#xff1a;DeepSeek-R1蒸馏模型实战部署 你可能已经听说过 DeepSeek-R1 在推理能力上的惊艳表现——它在数学、代码和逻辑任务中展现出接近人类专家的思维链能力。但你知道吗&#xff1f;现在有一个更轻量、更高效的版本&#xff0c;已经可以轻…

作者头像 李华
网站建设 2026/8/27 21:37:21

YOLOv13镜像进阶用法:如何导出ONNX模型文件

YOLOv13镜像进阶用法&#xff1a;如何导出ONNX模型文件 在目标检测的实际部署中&#xff0c;一个常见的挑战是如何将训练好的模型从开发环境迁移到生产环境。尤其是在边缘设备、嵌入式系统或跨平台推理场景下&#xff0c;直接使用 PyTorch 模型不仅效率低&#xff0c;还可能因…

作者头像 李华
网站建设 2026/8/22 9:45:14

gpt-oss-20b-WEBUI实战:网页推理从部署到使用的全过程

gpt-oss-20b-WEBUI实战&#xff1a;网页推理从部署到使用的全过程 1. 引言&#xff1a;为什么选择gpt-oss-20b-WEBUI&#xff1f; 你是否曾想过&#xff0c;在自己的电脑上就能运行一个接近GPT-4水平的开源大模型&#xff1f;现在&#xff0c;这不再是幻想。OpenAI推出的 gpt…

作者头像 李华
网站建设 2026/8/22 5:23:15

告别传统文本建模!用Glyph将长文本转图像高效处理

告别传统文本建模&#xff01;用Glyph将长文本转图像高效处理 1. 长文本处理的新范式&#xff1a;从“读”到“看” 你有没有遇到过这样的问题&#xff1a;一段上万字的合同、一篇几十页的技术文档&#xff0c;输入给大模型时直接被截断&#xff1f;传统的语言模型受限于上下…

作者头像 李华
网站建设 2026/8/22 1:07:54

Windows触控板驱动完整指南:让Apple触控板在Windows上完美运行

Windows触控板驱动完整指南&#xff1a;让Apple触控板在Windows上完美运行 【免费下载链接】mac-precision-touchpad Windows Precision Touchpad Driver Implementation for Apple MacBook / Magic Trackpad 项目地址: https://gitcode.com/gh_mirrors/ma/mac-precision-tou…

作者头像 李华
网站建设 2026/8/22 4:29:51

如何快速掌握Packmol:分子动力学初学者的完整配置指南

如何快速掌握Packmol&#xff1a;分子动力学初学者的完整配置指南 【免费下载链接】packmol Packmol - Initial configurations for molecular dynamics simulations 项目地址: https://gitcode.com/gh_mirrors/pa/packmol Packmol作为分子动力学模拟领域的强力工具&…

作者头像 李华