代码随想录——划分字母区间(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;
    }
}
相关推荐
昵称小白几秒前
图论专题(上)
算法·深度优先·图论
victory0431几秒前
面试知识点 1 2 3复印版本
面试·职场和发展
大大杰哥1 分钟前
leetcode hot100(2)双指针,滑动窗口
数据结构·算法·leetcode
skilllite作者1 分钟前
GEO 是什么:从搜索引擎到「对话式答案」的信息可见性
java·前端·笔记·安全·搜索引擎·agentskills
是宇写的啊4 分钟前
SpringBoot 统一功能处理
java·spring boot·后端
风筝在晴天搁浅4 分钟前
LeetCode CodeTop 113.路径总和Ⅱ
算法·leetcode
张赫轩(不重名)5 分钟前
加权重心(换根DP)
c++·算法·动态规划·图论
等....6 分钟前
Spring Boot多模块项目部署
java·spring boot·后端
水木流年追梦9 分钟前
【python因果库实战26】逆概率加权模型1
开发语言·python·算法·leetcode
2401_8401052012 分钟前
题解: [GESP202409 八级] 美丽路径
数据结构·c++·算法·动态规划