代码随想录——划分字母区间(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;
    }
}
相关推荐
明天过后ww5 分钟前
MySQL SQL 优化的10个关键方向
java·数据库·spring
飞天小牛肉7 分钟前
26届Java暑期实习面经,腾讯视频一面
java·面试·秋招·校招
CN.LG9 分钟前
Java List<JSONObject> 中的数据转换为 List<T>
java·开发语言
风铃儿~13 分钟前
Elasticsearch 从入门到实战:文档聚合操作及总结
java·elasticsearch·微服务
爱喝热水的呀哈喽1 小时前
Java collection实例电影尝试
java·windows·python
小画家~1 小时前
第十八:GC 垃圾回收
java·开发语言·jvm·golang
XYY3691 小时前
搜索与图论 树的广度优先遍历 图中点的层次
算法·图论·宽度优先
python_chai2 小时前
Python核心数据结构详解:元组、集合与字典
java·数据结构·python
爱编程的王小美2 小时前
8876行详解数据结构,从入门到入坟
数据结构
老华带你飞3 小时前
医药垃圾分类管理系统|基于SSM+vue医药垃圾分类管理系统的系统设计与实现(源码+数据库+文档)
java·数据库·vue·毕业设计·论文·ssm·医药垃圾分类管理系统