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
        
相关推荐
All for pursuit.15 分钟前
【二分查找-2】34.在排序数组中查找元素的第一个和最后一个位置
数据结构·c++·算法·leetcode
泯泷19 分钟前
为什么 AI 会"失忆"?——读懂 Agent 的记忆系统(一)
人工智能·算法·agent
需要8262 小时前
分布式 ID 生成:雪花算法、号段模式与时钟回拨
分布式·算法
垆边人似月.2 小时前
华为机考题:字符串分隔
算法·华为
CQU_JIAKE2 小时前
9.4【A】
算法
CQU_JIAKE2 小时前
9.13[A]
算法
懿路向前2 小时前
【唤醒实战笔记】2026-09-29 | 智能体提示词迭代史(v1 → v8)
linux·笔记·算法
@陈小鱼3 小时前
基于CNN-Transformer的无袖带血压估计
人工智能·深度学习·神经网络·算法·cnn·transformer·血压
黄金龙PLUS3 小时前
5个1280比特大状态置换算法的设计与分析
算法·网络安全·密码学·哈希算法·同态加密
不会就选b3 小时前
算法日常・每日刷题--<动态规划>1
java·数据结构·算法