代码随想录——划分字母区间(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;
    }
}
相关推荐
刘恒1234567893 分钟前
Windows 电脑文件夹手动分类指南
java·windows·python·电脑·php
爱学习的小可爱卢4 分钟前
JavaSE基础-Java异常处理全解析:从ClassNotFound到IndexOutOfBounds
java·javase
小王不爱笑13210 分钟前
LangChain4j 项目实战--1:硅谷小智(医疗智能客服)笔记
java
XiaoLeisj10 分钟前
Android Activity 页面导航基础:Manifest 声明、Intent 显式/隐式跳转与数据传递
android·java
忍者必须死14 分钟前
JDK1.7的HashMap的环形链表
java·数据结构·算法·链表
鹿角片ljp17 分钟前
短信登录:基于 Session 实现(黑马点评实战)
java·服务器·spring boot·mybatis
NEXT0617 分钟前
数组转树与树转数组
前端·数据结构·面试
北风toto17 分钟前
JDK8(JAVA)供应商说明
java·开发语言
清水白石00818 分钟前
观察者模式全解析:用 Python 构建优雅的事件系统,让组件彻底解耦
java·python·观察者模式
仟濹19 分钟前
【算法打卡day10(2026-02-24 周二)动态规划DP基础理论】
算法·动态规划