代码随想录——划分字母区间(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;
    }
}
相关推荐
buhuizhiyuci4 分钟前
【算法篇】位运算 —— 基础篇
java·数据库·算法
laboratory agent开发24 分钟前
企业AI Agent落地前,先回答四个工程问题
java·前端·人工智能
Black蜡笔小新25 分钟前
算法训练完了怎么上线?DLTM→AIS→EasyGBS三步交付流水线
人工智能·算法
微三云 - 廖会灵 (私域系统开发)25 分钟前
电商系统国际化架构设计:多语言、多币种、多时区、多税制的全链路实现
java·前端·数据库
XS03010625 分钟前
Spring AI 第二课-流式输出 & 运行时动态参数配置
java·人工智能·spring
weixin_7275356226 分钟前
JVM 常见八股面试问答:深入底层原理
jvm·面试·职场和发展
额恩6631 分钟前
阶段五:HttpOnly Cookie 登录持久化
java·spring
sycmancia39 分钟前
Qt——多线程与界面组件的通信
开发语言·qt·算法
唐青枫1 小时前
Java Netty 实战指南:从 NIO 线程模型到 TCP 编解码和心跳机制
java
想吃火锅10051 小时前
【leetcode】5.最长回文子串js
算法·leetcode·职场和发展