代码随想录算法训练营第三十天-贪心算法-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;
}
相关推荐
大爱编程♡几秒前
C++基础-类和对象
c++·算法
ysa0510302 分钟前
【板子】费用流
算法·深度优先·图论
玖玥拾12 分钟前
LeetCode 80 删除有序数组中的重复项 II
算法·leetcode
青山木25 分钟前
Hot 100 --- 电话号码的字母组合
java·数据结构·算法·leetcode·逻辑回归
hanlin0336 分钟前
刷题笔记:力扣第206题-反转链表
笔记·leetcode·链表
闪电悠米1 小时前
力扣hot100-240.搜索二维矩阵2-单调性剪枝详解
数据结构·算法·leetcode·矩阵·哈希算法
imuliuliang1 小时前
关于基于图论的最短路径算法性能对比分析7
算法
SilentSlot1 小时前
【C/C++】手写 DPDK 协议栈(十二):TCP 并发与自实现 epoll 的就绪事件分发
c语言·c++·tcp/ip
SilentSlot1 小时前
【C/C++】手写 DPDK 协议栈(六):TCP 三次握手、状态机与数据回显
c语言·c++·tcp/ip
乱七八糟的屋子1 小时前
AMQP C++ 超详细实战教程(amqp-cpp 开源库从零入门到生产落地)
c++·rabbitmq·任务队列·amqp·流量削峰·c++服务端异步解耦·分布式消息通信