java数据结构与算法刷题-----LeetCode763. 划分字母区间

组合导航(八):INS/GPS组合导航 INS/GPS组合导航1 误差反馈1.1 开环INS/GPS架构1.2 闭环INS/GPS架构2 组合导航的类型2.1 松耦合 的INS/GPS组合导航2.2 紧耦合 的INS/GPS组合导航2.3 深度耦合的 INS/GPS组合导航3 INS方程的动态误差模型4 松耦合的INS/GPS组合导航模型4.1 系统模型4.2 测量模型4.3 INS/GPS松耦合总框图5 紧耦合的INS/GPS组合导航模型5.1 系统模型5.2 测量模型 INS/GPS组合导航 对比INS与GPS导航方法,二者都有其各自的优. 阅读详情
java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.youkuaiyun.com/grd_java/article/details/123063846

文章目录

在这里插入图片描述

统计+贪心

解题思路:时间复杂度O( n n n),空间复杂度O( 26 26 26),其中26是因为字符串s的字符范围是26个字母
  1. 我们先统计每一个字符最后出现的位置。也就是字符a在字符串s中最右边的位置
  2. 然后遍历字符串s,每遍历一个字符,就获取这个字符a的最右侧位置。并统计这个最右侧的位置为curRight
  1. 如果当前字符a的位置并不是a这个字符在s中最右侧的位置aRight,那么当前位置无法划分为一个区间。因为一个每个区间不能有交集,如果在当前位置划分区间,下一个区间必定会划分字符a。我们必须令当前区间将a完全包含
  2. 而目前这个区间最好的情况,也只能是到aRight正好划分一个区间,所以只能令curRight = aRight
  1. 如果当前字符a的aRight,正好和curRight一至,说明当前区间是一个和其它区间没有交集的区间,统计答案即可
代码

在这里插入图片描述

class Solution {
    public List<Integer> partitionLabels(String s) {
        char[] strs = s.toCharArray();//获取字符数组
        int[] last = new int[26];//保存每个字母最后一次出现的位置
        //将字符串中,每个字母最后一次出现的位置记录到last相应位置
        for(int i = 0; i < strs.length; i++) last[strs[i] - 'a'] = i;
        //然后进行贪心算法,如果
        int curRight = -1;//当前右边界
        int curLeft = 0;//当前左边界
        List<Integer> res = new ArrayList<>();//保存答案
        for(int i = 0; i < strs.length; i++){
            int index = (int)(strs[i] - 'a');//获取当前字符在last数组中的下标
            //如果当前字符的最后一次出现位置 > 当前右边界。则当前右边界只能扩张
            if(last[index] > curRight) curRight = last[index];
            //如果当前i字符正好是当前右边界。说明一个符合条件的区间找到了
            if(i == curRight) {
                res.add(curRight - curLeft + 1);//将其填加到答案中
                curLeft = curRight + 1;//下一个区间的左边界从当前右边界+1位置开始
            }
        }
        return res;
    }
}
SAP MM自动化进阶:STO交货单自动创建的配置与优化 本文深入解析了SAP MM模块中实现公司间库存调拨订单(STO)交货单自动创建的完整配置流程与优化策略。通过激活自动交货与绑定发货点两大核心配置,打通自动化链路。重点探讨了如何集成ATP可用性检查以智能处理库存不足等异常场景,确保自动化流程的可靠性与业务贴合度,并提供了进阶监控与问题排查方法,助力企业显著提升供应链效率。 阅读详情

相关推荐

Pyside6+qml+Qtcreator项目实战

PYTHON and QT QUICK - Custom Buttons With QML And JavaScript - [MODERN GUI]-#01

u014627020的博客 922

代码随想录刷题day30丨452. 用最少数量的箭引爆气球, 435. 无重叠区间,763.划分字母区间

文档讲解:https://programmercarl.com/0452.%E7%94%A8%E6%9C%80%E5%B0%91%E6%95%B0%E9%87%8F%E7%9A%84%E7%AE%AD%E5%BC%95%E7%88%86%E6%B0%94%E7%90%83.html解题思路:贪心。。两个气球挨在一起不重叠也可以一起射爆以题目示例: [[10,16],[2,8],[1,6],[7,12]]为例,如图:(方便起见,已经排序)

m0_75195038的博客 859

基于Web的智能家居(源码+开题)

实践上,智能家居系统的普及和应用将极大改善人们的居住体验,提高生活质量,同时也有助于促进智能家居产业链的发展和完善,为社会经济发展注入新的活力。此外,本研究还将对基于Web的智能家居系统的用户体验进行深入研究,通过用户调研和数据分析,不断优化系统功能和界面设计,提升用户的使用体验和满意度。针对以上问题,本研究将综合运用物联网、云计算、大数据等新一代信息技术,通过系统架构设计、功能模块开发、安全性保障、用户体验优化等多个方面的研究工作,力求为基于Web的智能家居系统的研发和应用提供全面而有效的解决方案。

sryue06的博客 1904

Java实现 LeetCode 763 划分字母区间(暴力)

763. 划分字母区间 字符串 S 由小写字母组成。我们要把这个字符串划分为尽可能多的片段,同一个字母只会出现在其中的一个片...

Marcus 3380

LSF调度实战:如何用bsub命令实现多队列资源抢占与公平调度

本文深入探讨了LSF作业调度系统的高级实战技巧,重点解析如何通过配置`lsb.queues`文件与灵活运用`bsub -R`命令,构建一套兼顾效率与公平的多队列资源抢占与调度体系。文章详细介绍了队列优先级设计、公平共享机制、资源感知调度以及抢占策略的实施,帮助集群管理员解决高优先级任务等待、资源分配不均等常见问题,实现计算资源的精细化管理和高效利用。

vvv99的博客 218

用CentOS 7安装cadence搭建适合IC Design的科研环境(四)——IC617、MMSIM151、calibre2015安装过程step by step

以下操作都在root权限下执行。建立安装目录建议把这种大型软件装在/opt目录下。mkdir -p /opt/cadence/installscape mkdir -p /opt/mentor/Calibre2015其中-p参数是直接建立父目录。因为IC617和MMISM151会自己建立安装目录,所以在这里没有建相关目录。而calibre则是默认安装在安装包所在的目录下,所以需要提前建立。解压安

maxwell2ic的博客 7万+

LeetCode 763. 划分字母区间

1. 题目 字符串 S 由小写字母组成。我们要把这个字符串划分为尽可能多的片段,同一个字母只会出现在其中的一个片段。返回一个表示每个字符串片段的长度的列表。 示例 1: 输入: S = "ababcbacadefegdehijhklij" 输出: [9,7,8] 解释: 划分结果为 "ababcbaca", "defegde", "hijhklij"。 每个字母最多出现在一个片段中。 像 "ab...

Michael是个半路程序员 1017

吃透 AM32 无人机电调:从源码架构到工作原理的全方位解析(附实践指南)(中)

介绍了三相电机控制中的SVPWM算法实现及保护机制设计。SVPWM部分详细解析了电压矢量扇区判断、占空比计算和过调制保护,通过限制占空比范围(0-100%)防止电机失控,并提供了完整的代码实现。保护模块则重点分析了过流、过压/欠压、过温三种保护机制,采用分级处理策略(硬保护停机/软保护降功率)确保系统安全。此外,文章还介绍了参数管理模块在STM32 Flash中的存储方案,包括参数定义、数据结构和读写操作,为电机控制系统提供了完整的解决方案。

bother3000的博客 1391

LeetCode - 贪心算法 - 763. 划分字母区间

763. 划分字母区间 字符串 S 由小写字母组成。我们要把这个字符串划分为尽可能多的片段,同一个字母只会出现在其中的一个片段。返回一个表示每个字符串片段的长度的列表。 示例 1: 输入:S = “ababcbacadefegdehijhklij” 输出:[9,7,8] 解释: 划分结果为 “ababcbaca”,“defegde”, “hijhklij”。 每个字母最多出现在一个片段中。 像 “ababcbacadefegde”, “hijhklij” 的划分是错误的,因为划分的片段数较少。 提示:

-happy 的博客 377

PADS VX2.4差分对设置避坑指南:常见错误与解决方案

本文深度解析了在PADS VX2.4中进行高速PCB设计时,差分对设置的核心要点与常见陷阱。针对Layout规则设置、Router布线实战中的阻抗控制、线长匹配等关键环节,提供了具体的避坑指南和解决方案,帮助工程师确保信号完整性,提升设计质量。

weixin_29216049的博客 362

ArcGIS中地理坐标系与投影坐标系以及投影转换

简单介绍arcgis软件中坐标系定义、设置和常见问题。

weixin_41399650的博客 8万+

Leetcode(java,python题解):763.划分字母区间

763.划分字母区间 题目描述: Leetcode:https://leetcode-cn.com/problems/partition-labels/ 字符串 S 由小写字母组成。我们要把这个字符串划分为尽可能多的片段,同一个字母只会出现在其中的一个片段。返回一个表示每个字符串片段的长度的列表。 示例 1: 输入: S = “ababcbacadefegdehijhklij” 输出: [9,7...

_淡泊宁静的博客 338

什么是 Agent 的 Context Window?为什么它是 Agent 工程中最核心的约束之一?

什么是 Agent 的 Context Window?为什么它是 Agent 工程中最核心的约束之一?

我哎GIS博客 819

Day30补代码随想录20250109 452.用最少数量的箭引爆气球|435.无重叠区间|763.划分字母区间 【重叠区间的题】

用Integer内置的compare比较方法,不会溢出。刚开始需要一支箭二维数组的使用注意题目中说明,当两区间重叠于一点,也算重叠。例如,[2,3]和[3,4]这道题和射击气球的题目要求不同的一点是,当两区间重叠于一点,不算重叠。为什么按照左右边界排序代码这道题思路简单,但是代码细节较多。

爱因斯小柚的博客 852

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

【算法面试必刷】763.划分字母区间

分割点之间的差值就是每一段的长度。第一个长度就是第一个分割点下标+1(因为下标从0开始),后面的长度就是当前分割点减上一个分割点。

qq_63119697的博客 569

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

763. 划分字母区间

字符串 S 由小写字母组成。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。返回一个表示每个字符串片段的长度的列表。

weixin_43412762的博客 500

贝叶斯统计 [韦来生编]

贝叶斯(Bayes)统计是近几十年来迅速发展起来的数理统计的一个重要分支。贝叶斯方法与经典统计方法的主要不同之处是进行统计推断时除了利用样本信息外,还要利用参数的先验信息,因此可以提高统计推断或统计决策的效果。它在经济、金融、生物、医学、自然科学和社会科学等许多领域具有广泛的应用。贝叶斯方法的研究已渗透到了统计学的几乎所有领域。作者在给中国科学技术大学概率论与数理统计专业本科生开设的“数理统计”课程中有一章专门讲授“贝叶斯方法和统计决策理论”,近十年来也给中国科学技术大学概率统计专业研究生开设过几次“贝叶斯分析”课。本书是在对过去讲稿的内容作了适当的增减和调整的基础上完成的。  本书共分六章。第1章是绪论,介绍了贝叶斯统计的若干基本概念,同时对必要的数理统计的基础知识有重点地作了回顾。第二章介绍了确定先验分布的若干可供选择的方法。第三章介绍了几类常见统计模型参数的后验分布的主要结果和计算方法。第四章和第五章分别介绍了“贝叶斯统计推断”和“贝叶斯统计决策”的内容。第六章介绍了贝叶斯统计计算的若干方法,包括蒙特卡洛方法和马尔可夫链蒙特卡洛(MCMC)方法以及相关统计软件的简介。本书的每一章附右大量的例题和习题,书末附有常用的几个表格和部分习题解答供读者查用。  大约可在54学时内讲授本书的第1章至第六章的主要内容,教师可根据学时需要选讲本书第1章至第六章的部分内容。书中标“*”号的章节可略去不讲,留给读者作为阅读材料。第六章例题中的R代码和部分例题的数据文件等可从作者个人主页下载。  作者在编写本书的过程中参考了J.O.Berger教授的《统计决策论及贝叶斯分析》和茆诗松教授编写的《贝叶斯统计》等书中的一些内容,以及《贝叶斯分析》一书中由张伟平博士编写的有关贝叶斯统计计算的一些内容。在此表示衷心感谢。  本书编写准备过程中,中国科学技术大学统计与金融系的几个研究生帮助完成了本书部分中文的录入和排版,作者对他们的辛勤工作表示真诚的感谢。高等教育出版社为本书的出版给予了大力支持。在此一并致谢。

Leetcode: NO.763 划分字母区间

题目 字符串 S 由小写字母组成。我们要把这个字符串划分为尽可能多的片段,同一个字母只会出现在其中的一个片段。返回一个表示每个字符串片段的长度的列表。 示例 1: 输入:S = "ababcbacadefegdehijhklij" 输出:[9,7,8] 解释: 划分结果为 "ababcbaca", "defegde", "hijhklij"。 每个字母最多出现在一个片段中。 像 "ababcbacadefegde", "hijhklij" 的划分是错误的,因为划分的片段数较少。 提示: S的长度在[1

泛泛之素 368

LeetCode刷题系列 -- 763. 划分字母区间

题目: 字符串 S 由小写字母组成。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。返回一个表示每个字符串片段的长度的列表。 示例: 输入:S = "ababcbacadefegdehijhklij" 输出:[9,7,8] 解释: 划分结果为 "ababcbaca", "defegde", "hijhklij"。 每个字母最多出现在一个片段中。 像 "ababcbacadefegde", "hijhklij" 的划分是错误的,因为划分的片段数较少。 提示: ...

qq_33775774的博客 116

(LeetCode 热题 100) 763. 划分字母区间 (哈希表、双指针)

【代码】(LeetCode 热题 100) 763. 划分字母区间 (哈希表、双指针)

记录一些刷过的题并分享学习心得 402

代码随想录算法训练Day36|LeetCode452-用最少数量的箭引爆气球、LeetCode435-无重叠区间、LeetCode763-划分字母区间、LeetCode37-解数独

此时问题就是要求非交叉区间的最大个数。这里记录非交叉区间的个数还是有技巧的,如图:区间,1,2,3,4,5,6都按照右边界排好序。当确定区间 1 和 区间2 重叠后,如何确定是否与 区间3 也重贴呢?就是取 区间1 和 区间2 右边界的最小值,因为这个最小值之前的部分一定是 区间1 和区间2 的重合部分,如果这个最小值也触达到区间3,那么说明 区间 1,2,3都是重合的。接下来就是找大于区间1结束位置的区间,是从区间4开始。

wish的博客 843

JAVA练习353- 划分字母区间

给你一个字符串s。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。例如,字符串"ababcc"能够被分为,但类似或的划分是非法的。注意,划分结果需要满足:将所有划分结果按顺序连接,得到的字符串仍然是s。返回一个表示每个字符串片段的长度的列表。[9,7,8]划分结果为 "ababcbaca"、"defegde"、"hijhklij"。每个字母最多出现在一个片段中。像 "ababcbacadefegde", "hijhklij" 这样的划分是错误的,因为划分的片段数较少。

qq_48772498的博客 57

【LeetCode】 763. Partition Labels 划分字母区间(Medium)(JAVA)

【LeetCode】 763. Partition Labels 划分字母区间(Medium)(JAVA) 题目地址: https://leetcode.com/problems/partition-labels/ 题目描述: A string S of lowercase English letters is given. We want to partition this string into as many parts as possible so that each letter appears

qq_16927853的博客 317

Day36--数据结构与算法(Java) 贪心算法:无重叠区间 ,划分字母区间 , 合并区间

力扣题库贪心算法 ● 435. 无重叠区间 ● 763.划分字母区间 ● 56. 合并区间

qq_52698263的博客 313

leetcode763.划分字母区间

这题上来就看不懂,纯模拟!用哈希表记录每一个字符最远出现的位置,最后在每一个小区间里面找到一个索引和最右区间相同的地方进行划分,详细介绍可以去看看代码随想录当中模拟过程。

weixin_74175349的博客 288

力扣(LeetCode)763

题目地址:https://leetcode-cn.com/probl...题目描述:字符串 S 由小写字母组成。我们要把这个字符串划分为尽可能多的片段,同一个字母只会出现在其中的一个片段。返回一个表示每个字符串片段的长度的列表。 示例 1: 输入: S = "ababcbacadefegdehijhklij"输出: [9,7,8]解释:划...

weixin_34323858的博客 313

代码随想录Day30 | 452.用最少数量的箭引爆气球,435.无重叠区间,763.划分字母区间

在当前**最早结束的区间end处(x_end)**射出一支弓箭,尽可能多的引爆气球。这道题的难点在于,把划分问题转换为区间问题。如果发现不能引爆了,则将其作为。排序 + 贪心:实际上是一个。

weixin_43992121的博客 420
上一篇: java数据结构与算法刷题-----LeetCode665. 非递减数列
下一篇: java数据结构与算法刷题-----LeetCode744. 寻找比目标字母大的最小字母
ydenergy_殷志鹏
博客等级 码龄7年 5887粉丝 543原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ydenergy_殷志鹏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值