代码随想录——划分字母区间(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;
    }
}
相关推荐
夜不会漫长5 分钟前
数据结构:链表
数据结构·链表
Devin~Y17 分钟前
互联网大厂Java面试实战:Spring Boot、MyBatis、Redis、Kafka、JWT、Spring Cloud 与 AI 场景追问
java·spring boot·redis·spring cloud·kafka·mybatis·spring security
Navigator_Z20 分钟前
LeetCode //C - 1156. Swap For Longest Repeated Character Substring
c语言·算法·leetcode
Reart23 分钟前
Leetcode 1143.最长公共子序列(720)
后端·算法
花生了什么事o28 分钟前
DDD:领域驱动设计的初步认识
java·数据库
无相求码37 分钟前
const vs #define:C语言常量定义的差异
c语言·算法
BGK11235839 分钟前
基于qemu_v8+optee 4.00 平台构建 ca/ta
java·大数据·数据库
先吃饱再说1 小时前
LeetCode 226. 翻转二叉树
算法
何中应1 小时前
Spring Boot整合Doris
java·数据库·spring boot
剑锋所指,所向披靡!1 小时前
数据结构之关键路径
数据结构·算法