代码随想录——划分字母区间(Leetcode763)

题目链接

贪心

java 复制代码
class Solution {
    public List<Integer> partitionLabels(String s) {
        int[] count = new int[27];
        Arrays.fill(count,0);
        // 统计元素最后一次出现的位置
        for(int i = 0; i < s.length(); i++){
            count[s.charAt(i) - 'a'] = i;
        }
        List<Integer> res = new ArrayList<Integer>();
        int left = 0;
        int right = 0;
        for(int i = 0; i < s.length(); i++){
            // 找到字符出现的最远边界
            right = Math.max(right, count[s.charAt(i) - 'a']);
            if(i == right){
                // 将符合条件的字符串长度插入res
                res.add(right - left + 1);
                left = i + 1;
            }
        }
        return res;
    }
}
相关推荐
17(无规则自律)8 小时前
C++ 链表修炼指南
数据结构·c++·算法·leetcode·链表
z20348315208 小时前
17届蓝桥杯嵌入式赛道开发板外设使用教程——按键、蜂鸣器、LCD屏幕
mongodb·职场和发展·蓝桥杯
KhalilRuan8 小时前
基于OpenGL实现布料模拟
算法
zjjsctcdl8 小时前
Spring之FactoryBean详解
java·后端·spring
大江东去浪淘尽千古风流人物8 小时前
【claw】 OpenClaw 的架构设计探索
深度学习·算法·3d·机器人·slam
闻缺陷则喜何志丹8 小时前
【字典树 回溯】P7210 [COCI 2020/2021 #3] Vlak|普及+
c++·算法·字典树·回溯·洛谷
二十雨辰8 小时前
[Java]RuoYi帝可得-2文件储存
java·开发语言
夏玉林的学习之路8 小时前
委托构造和using关键字
开发语言·c++·算法
·中年程序渣·8 小时前
Spring AI Alibaba入门学习(三)
java·学习·spring
small-pudding8 小时前
深入理解PDF:蒙特卡洛光线追踪中的概率密度函数
算法·pdf·图形渲染