代码随想录——划分字母区间(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;
    }
}
相关推荐
叽哥6 分钟前
Kotlin学习第 1 课:Kotlin 入门准备:搭建学习环境与认知基础
android·java·kotlin
艾莉丝努力练剑15 分钟前
【C语言16天强化训练】从基础入门到进阶:Day 1
c语言·开发语言·数据结构·学习
亲爱的非洲野猪16 分钟前
令牌桶(Token Bucket)和漏桶(Leaky Bucket)细节对比
网络·算法·限流·服务
Hy行者勇哥20 分钟前
物联网软件开发过程中,数据流图(DFD),用例图,类图,活动图,序列图,状态图,实体关系图(ERD),BPMN(业务流程建模)详解分析
java·物联网·struts
Miracle65825 分钟前
从 0 到 1 开发校园二手交易系统:飞算 JavaAI 全流程实战
java
NAGNIP30 分钟前
一文读懂LLAMA
算法
烧冻鸡翅QAQ32 分钟前
62.不同路径
算法·动态规划
番薯大佬33 分钟前
编程算法实例-冒泡排序
数据结构·算法·排序算法
queenlll35 分钟前
P2404 自然数的拆分问题(典型的dfs)
算法·深度优先
wydaicls36 分钟前
用函数实现方程函数解题
人工智能·算法·机器学习