代码随想录——划分字母区间(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;
    }
}
相关推荐
小刘的AI小站10 分钟前
leetcode hot100 二叉搜索树
算法·leetcode
自信的小螺丝钉11 分钟前
Leetcode 876. 链表的中间结点 快慢指针
算法·leetcode·链表·指针
红豆怪怪12 分钟前
[LeetCode 热题 100] 32. 最长有效括号
数据结构·python·算法·leetcode·动态规划·代理模式
参.商.13 分钟前
【Day21】146.LRU缓存 (Least Recently Used)
leetcode·缓存·golang
愚润求学18 分钟前
【贪心算法】day6
c++·算法·leetcode·贪心算法
AI 嗯啦29 分钟前
计算机的排序方法
数据结构·算法·排序算法
小薛博客36 分钟前
22、Jenkins容器化部署Java应用
java·运维·jenkins
西贝爱学习41 分钟前
如何在 IntelliJ IDEA 中进行全局替换某个字段(或文本)
java·ide·intellij-idea
l12345sy42 分钟前
Day23_【机器学习—聚类算法—K-Means聚类 及评估指标SSE、SC、CH】
算法·机器学习·kmeans·聚类·sse·sc·ch
南部余额44 分钟前
Spring 基于注解的自动化事务
java·spring·自动化