代码随想录——划分字母区间(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;
    }
}
相关推荐
CoovallyAIHub2 分钟前
NeurIPS 2025时间检验奖:10年之后再谈Faster R-CNN
深度学习·算法·计算机视觉
tgethe4 分钟前
Lambda表达式
java·后端
__万波__5 分钟前
二十三种设计模式(一)--单例模式
java·单例模式·设计模式
songgz13 分钟前
双向流式 JSON 解析架构:并行优化大型文件处理
java·开发语言·json
CoovallyAIHub14 分钟前
1024层网络让强化学习性能飙升50倍,NeurIPS 2025最佳论文揭示深度scaling的力量
深度学习·算法·计算机视觉
adfass15 分钟前
桌面挂件时钟/多功能时钟C++
开发语言·c++·算法
6***092624 分钟前
Spring 中集成Hibernate
java·spring·hibernate
z***026025 分钟前
Spring Boot管理用户数据
java·spring boot·后端
多多*27 分钟前
Threadlocal深度解析 为什么key是弱引用 value是强引用
java·开发语言·网络·jvm·网络协议·tcp/ip·mybatis
z***396231 分钟前
Plugin ‘org.springframework.bootspring-boot-maven-plugin‘ not found(已解决)
java·前端·maven