leecode100-划分区间-贪心算法

题目

解法

cpp 复制代码
class Solution:
    def partitionLabels(self, s: str) -> List[int]:
        #记录每个字母的最后出现的下标i
        last = {}
        for i,c in enumerate(str):
            last.append(c:i)
        ans = []
        start = end = 0
        for i, c in enumerate(s):
            end = max(end, last[c])#不断拉长当前区间的最后的位置
            if end == i:#如果扫描到了,说明当前区间所有字母的最后位置都被包含到了 则区间划分好了
                ans.append(end - start + 1)
                start = i+1
        return ans
        
相关推荐
Book思议-2 小时前
【数据结构实战】C语言实现栈的链式存储:从初始化到销毁,手把手教你写可运行代码
数据结构·算法·链表··408
Book思议-2 小时前
【数据结构实战】川剧 “扯脸” 与栈的 LIFO 特性 :用 C 语言实现 3 种栈结构
c语言·数据结构·算法·
3GPP仿真实验室2 小时前
【MATLAB源码】感知:CFAR 检测算法库
算法·matlab·目标跟踪
fengenrong2 小时前
20260324
c++·算法
qq_416018722 小时前
设计模式在C++中的实现
开发语言·c++·算法
倾心琴心2 小时前
【agent辅助pcb routing coding学习】实践9 CU GR 代码 算法学习
算法·agent·pcb·eda·routing
数据智能老司机2 小时前
谷歌 TurboQuant 深度拆解:LLM 内存压缩 6 倍、推理加速 8 倍、零精度损失,它是怎么做到的?
算法
2301_776508723 小时前
C++与机器学习框架
开发语言·c++·算法
Albertbreak3 小时前
STL容器内部实现剖析
开发语言·c++·算法