代码随想录——划分字母区间(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;
    }
}
相关推荐
像污秽一样1 天前
算法与设计与分析-习题4.2
算法·排序算法·深度优先·dfs·bfs
Jin、yz1 天前
JAVA 八股
java·开发语言
va学弟1 天前
Java 网络通信编程(6):视频通话
java·服务器·网络·音视频
pjw198809031 天前
Spring Framework 中文官方文档
java·后端·spring
Storynone1 天前
【Day20】LeetCode:39. 组合总和,40. 组合总和II,131. 分割回文串
python·算法·leetcode
jgyzl1 天前
2026.3.11MyBatis-Plus基本使用与思考
java·数据库·mybatis
明明如月学长1 天前
AI 更新太快学不过来?我用OpenClaw打造专属AI学习工作流
算法
黎阳之光1 天前
【黎阳之光:以无线专网与视频孪生,赋能智慧广电与数字中国】
算法·安全·智慧城市·数字孪生
Full Stack Developme1 天前
Java 常用通信协议及对应的框架
java·开发语言
( •̀∀•́ )9201 天前
Spring Boot 启动报错 `BindException: Permission denied`
java·spring boot·后端