代码随想录——划分字母区间(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;
    }
}
相关推荐
小张快跑。9 分钟前
Maven指定版本下载以及相关配置
java·maven
zhishidi11 分钟前
Spring @Scheduled注解调度机制详解
java·python·spring
⑩-11 分钟前
Blocked与Wati的区别
java·开发语言
AAA简单玩转程序设计13 分钟前
救命!Java这3个小技巧,写起来爽到飞起✨
java
IManiy20 分钟前
Java表达式引擎技术选型分析(SpEL、QLExpress)
java·开发语言
前端小白在前进22 分钟前
力扣刷题:复原IP地址
tcp/ip·算法·leetcode
历程里程碑28 分钟前
C++ 17异常处理:高效捕获与精准修复
java·c语言·开发语言·jvm·c++
雨雨雨雨雨别下啦29 分钟前
ssm复习总结
java·开发语言
yaoh.wang34 分钟前
力扣(LeetCode) 94: 二叉树的中序遍历 - 解法思路
python·算法·leetcode·面试·职场和发展·二叉树·跳槽
Evand J35 分钟前
【课题推荐】基于视觉(像素坐标)与 IMU 的目标/自身运动估计(Visual-Inertial Odometry, VIO),课题介绍与算法示例
人工智能·算法·计算机视觉