代码随想录——划分字母区间(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;
    }
}
相关推荐
浩瀚地学2 分钟前
【Java】数组
java·开发语言
点云SLAM20 分钟前
Boost库中Math 模块的根搜索 / 根求解和示例
数学·算法·数值优化·根搜索 / 根求解和示例·函数根求解·boost模块
我搞slam22 分钟前
EM Planner算法与代码解读
算法
a***592626 分钟前
SpringBoot实现异步调用的方法
java·spring boot·spring
即将进化成人机28 分钟前
Spring Boot配置文件
java·开发语言·intellij-idea
龙智DevSecOps解决方案31 分钟前
Java开发基础:什么是Spring Boot?一文了解其优势、对比以及如何通过Perforce JRebel实现高效开发
java·开发语言·spring boot·jrebel·perforce·java开发
一直都在57233 分钟前
手写tomcat(1):Socket
java·tomcat
PPPPickup35 分钟前
easychat---创建,获取,获取详细,退群,解散,添加与移除群组
java·开发语言·后端·maven
luod36 分钟前
SpringBoot自动初始化数据
java·spring boot·spring
牛顿没有错37 分钟前
lombok中@Data、@AllArgsConstructor、@NoArgsConstructor不生效
java·spring boot·spring·intellij-idea