代码随想录——划分字母区间(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;
    }
}
相关推荐
OYYHXPJR21 分钟前
【算法】区间重叠模板和矩形重叠模板
算法
shehuiyuelaiyuehao23 分钟前
算法46,分治快排,排序数组
java·算法·排序算法·排序
圣保罗的大教堂30 分钟前
leetcode 3483. 不同三位偶数的数目 简单
leetcode
野生技术架构师31 分钟前
1200 道 JAVA 面试题(各大企业常见面试题及答案)
java·开发语言
careathers34 分钟前
【数据结构】栈
java·数据结构
远航计算机39 分钟前
GEO 选题从哪来?用一份 Query 词库把一年内容排出来
大数据·人工智能·算法·aigc
宣宣猪的小花园.39 分钟前
【机器学习】神经网络与表征:为什么深度学习能自动提取特征
人工智能·嵌入式硬件·算法·机器学习
邪修king1 小时前
Re:Linux系统篇(二十六):文件系统(二):Ext 文件系统底层详解:从 inode、块组到软硬链接,结合 Windows 讲透文件管理本质
android·java·linux
mmmmath_31 小时前
LeetCode.018.四数之和
数据结构·算法·leetcode
AIGCmagic社区1 小时前
腾讯混元 AuK 技术报告拆读:1.5B 统一语音生成与编辑,蒸馏后 4 步无 CFG 提速 4.5 倍
人工智能·算法·aigc·ai多模态