代码随想录算法训练营第三十五天|435. 无重叠区间、763.划分字母区间

435. 无重叠区间

先对区间进行排序,优先去除交集区间。

763.划分字母区间

这题的思路就是找到每个区间中的字母最后出现的位置,关键是位置怎么找

cpp 复制代码
int hash[27] = {0}; // i为字符,hash[i]为字符出现的最后位置
        for (int i = 0; i < S.size(); i++) { // 统计每一个字符最后出现的位置
            hash[S[i] - 'a'] = i;
        }

这里的方法是十分巧妙的,由于i是从小到大依次循环,指定字母的值小的会被大的值给覆盖,最后仅用一次循环就实现了最后位置的寻找。

相关推荐
xu_yule5 分钟前
算法基础—组合数学
c++·算法
爱尔兰极光6 分钟前
LeetCode--移除元素
算法·leetcode·职场和发展
Tansmjs18 分钟前
C++中的工厂模式变体
开发语言·c++·算法
naruto_lnq20 分钟前
多平台UI框架C++开发
开发语言·c++·算法
Tingjct21 分钟前
十大排序算法——交换排序(一)
c语言·开发语言·数据结构·算法·排序算法
MM_MS23 分钟前
Halcon图像点运算、获取直方图、直方图均衡化
图像处理·人工智能·算法·目标检测·计算机视觉·c#·视觉检测
每天要多喝水27 分钟前
贪心算法专题Day22
算法·贪心算法
ujainu31 分钟前
Flutter + OpenHarmony 游戏开发进阶:动态关卡生成——随机圆环布局算法
算法·flutter·游戏·openharmony
PPPPPaPeR.32 分钟前
程序地址空间
linux·算法
苦藤新鸡34 分钟前
51.课程表(拓扑排序)-leetcode207
数据结构·算法·leetcode·bfs