代码随想录——划分字母区间(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;
    }
}
相关推荐
背景调查知识库6 分钟前
职业背景调查中的异常复核与候选人说明如何识别?
职场和发展
凉茶钱8 分钟前
list:哨兵节点,const_iterator 和 const iterator的区别与迭代器失效
数据结构·c++·list
我命由我1234514 分钟前
SQL 检测脚本
java·数据库·sql·功能测试·单元测试·压力测试·可用性测试
Jsundoku24 分钟前
第六章 机器学习 -- 支持向量机
算法·机器学习·支持向量机
Hpc_Fun31 分钟前
GPU 工作站品牌怎么比?五把可核验尺子、加权评分脚本与场景重排
java·信创·gpu工作站·品牌对比·加权评分
const_qiu31 分钟前
第四章 03:4.3 Tools —— 让 Agent 会用工具
java·人工智能
Rain的Java大神之路37 分钟前
百万并发直播弹幕系统设计全解:看懂了扇出,你就看懂了高并发的八成
java·后端·面试
?abc!1 小时前
(数组)448. 找到所有数组中消失的数字
算法
\光辉岁月/1 小时前
2.异常类
java·开发语言·异常类