代码随想录——划分字母区间(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;
    }
}
相关推荐
QCoding5 分钟前
Java转AI第三课:Spring AI如何把100行HTTP代码缩减到10行?
java·人工智能
振宇i7 分钟前
Java集成openfeign远程RPC调用教程
java·rpc·openfeign
wear工程师9 分钟前
volatile 这题别只答「可见性」:面试官真正想听的是这条 happens-before
java·jvm
王九思12 分钟前
对称加密与非对称加密详解
java·网络·数据库
米尔的可达鸭20 分钟前
深入操作系统 Socket 底层:EPOLLOUT 可写事件管理 + 非阻塞异步
开发语言·网络·数据结构·经验分享·websocket·网络协议
SimonKing23 分钟前
Spring Boot 4.0 + gRPC 极简集成:4步搞定,比REST还丝滑
java·后端·程序员
C++、Java和Python的菜鸟26 分钟前
第3章 后端Web基础 (Maven)
java
小小编程路28 分钟前
Java super 关键字详解:用法、场景与常见误区
java·开发语言
我登哥MVP36 分钟前
走进 Gang of Four 设计模式:外观模式
java·设计模式·外观模式
HZZD_HZZD39 分钟前
碳核查场景下能源计量数据精准采集与碳排放核算算法全链路实战:从智能电表协议适配到排放因子动态计算
算法·能源