代码随想录算法训练营第三十天-贪心算法-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;
}
相关推荐
niceffking6 分钟前
C++:initializer_list 与 {} 初始化的本质
开发语言·c++·cpp
Tisfy6 分钟前
LeetCode 3212.统计 X 和 Y 频数相等的子矩阵数量:前缀和
算法·leetcode·前缀和·矩阵
jaysee-sjc7 分钟前
十六、Java 网络编程全解析:UDP/TCP 通信 + BS/CS 架构
java·开发语言·网络·tcp/ip·算法·架构·udp
顶点多余12 分钟前
Linux中基础IO知识全解
linux·服务器·算法
编程之升级打怪13 分钟前
简单的测试搜索词的分割算法思路
java·算法
.select.17 分钟前
虚函数和虚表
开发语言·c++·算法
靠沿17 分钟前
【优选算法】专题十七——多源BFS(最短路径问题)
java·算法·宽度优先
王老师青少年编程18 分钟前
信奥赛C++提高组csp-s之数论基础专题课:中国剩余定理2(编程案例实践1)
c++·数论·中国剩余定理·csp·信奥赛·csp-s·提高组
乐观勇敢坚强的老彭20 分钟前
c++信奥for循环强化03
开发语言·c++
重生之我是Java开发战士21 分钟前
【递归、搜索与回溯】优美的排列,N皇后,有效的数独,解数独,单词搜索,黄金矿工,不同路径III
算法·深度优先