代码随想录算法训练营第三十天-贪心算法-763. 划分字母区间

  • 标记字符最远位置,这是人能想到的?
  • 定义一个26个字母的数组,下标表示字母的位置,数组值表示当前字母在字符串中遍历过程中所处的位置
  • 算法题目无厘头太多,但解法也是太精彩,可是根本记不住,要每日刷,每日精进
cpp 复制代码
#include <iostream>
#include <vector>

class Solution {
public:
    std::vector<int> partitionLabels(std::string s) {
        int hash[26] {0};
        for (int i = 0; i < s.size(); ++i)
            hash[s[i] - 'a'] = i;
        std::vector<int> result;
        int left = 0, right = 0;
        for (int i = 0; i < s.size(); ++i) {
            right = std::max(right, hash[s[i] - 'a']);
            if (i == right) {
                result.push_back(right - left + 1);
                left = i + 1;
            }
        }
        return result;
    }
};

int main()
{
    Solution s;
    return 0;
}
相关推荐
丶小鱼丶14 小时前
数据结构和算法之【链表】
java·数据结构·算法
礼拜天没时间.14 小时前
力扣热题100实战 | 第31期:下一个排列——数组规律的极致探索
java·算法·leetcode·字典序·原地算法·力扣热题100
ws540d14 小时前
Ranking All UsersLast Updated: 2026-03-14(Sat) 19:46算法启发式活跃用户所有用户
算法
lcreek14 小时前
LeetCode LCR114.火星词典
leetcode··拓扑排序
进击的小头14 小时前
第8篇:线性二次型调节器
python·算法·动态规划
Z9fish14 小时前
sse哈工大C语言编程练习42
c语言·开发语言·算法
YYYing.14 小时前
【Linux/C++多线程篇(一) 】多线程编程入门:从核心概念到常用函数详解
linux·开发语言·c++·笔记·ubuntu
一起搞IT吧14 小时前
Android功耗系列专题理论之十六:功耗不同阶段&不同模块分析说明
android·c++·智能手机·性能优化
一个有毅力的吃货14 小时前
这个SKILL打通了AI写公众号文章的最后一公里
css·算法
free-elcmacom14 小时前
C++ 函数占位参数与重载详解:从基础到避坑
java·前端·算法