划分字母区间

划分字母区间

思路:

我觉得这道题最关键的一个思路就是,对于没一个字母,你一定要找到他的最后一次出现的位置,每一个片段必须要比这个大,然后该字符到这个end中其他的字符,也都要找到最后一次出现的位置,这个片段一定也要比这个大,然后我们遍历到这个片段里最大的最后一次出现的位置时候,就可以记录片段长度了,这个长度是符合题目意思的。

第一个思路:记录每个字符的第一次出现位置和最后一次出现位置,之后这题就和 56 .合并区间 完全一样的做法。

第二个思路:记录每个字母的结束位置。

代码:

cpp 复制代码
class Solution {
public:
    vector<int> partitionLabels(string s) {
        vector<int> ans;
        unordered_map<char,int> m; //记录每个字符的的最后一次出现的位置
        for (int i = 0; i < s.size(); i ++) {
            m[s[i]] = i;
        }
        int start=0,end=0;//start用来维护每一段的起点,end用来维护每一段的终点
        for(int i=0;i<s.size();i++)
        {
            end=max(end,m[s[i]]);
            if(i==end)
            {
                ans.push_back(end-start+1);
                start=i+1;
            }
        }
        return ans;
    }
};
相关推荐
机器学习之心2 分钟前
198种组合算法+优化TCN时间卷积神经网络+SHAP分析+新数据预测+多输出!深度学习可解释分析,强烈安利,粉丝必备!
深度学习·算法·shap分析·tcn时间卷积神经网络
代码游侠3 分钟前
数据结构——线性表
linux·c语言·数据结构·学习·算法
吃着火锅x唱着歌5 分钟前
LeetCode 3371.识别数组中的最大异常值
数据结构·算法·leetcode
元亓亓亓7 分钟前
LeetCode热题100--74. 搜索二维矩阵--中等
算法·leetcode·矩阵
zzzsde18 分钟前
【C++】异常:概念及使用
开发语言·c++·算法
天真小巫23 分钟前
2025.11.29总结
职场和发展
ghie909030 分钟前
ART 和SART 医学CT重建迭代重建算法
人工智能·算法·计算机视觉
熊猫_豆豆31 分钟前
基于改进沙猫群优化算法的Otsu图像分割
人工智能·算法·计算机视觉
吃着火锅x唱着歌32 分钟前
LeetCode 624.数组列表中的最大距离
数据结构·算法·leetcode
im_AMBER36 分钟前
Leetcode 64 大小为 K 且平均值大于等于阈值的子数组数目
笔记·学习·算法·leetcode