算法刷题Day 36 无重叠区间+划分字母区间+合并区间

news/2024/10/22 15:40:39/

Day 36 贪心算法

435. 无重叠区间

差点就自己写出来了

class Solution {static bool cmp(const vector<int> &a, const vector<int> &b){if (a[0] == b[0]) return a[1] < b[1];return a[0] < b[0];}public:int eraseOverlapIntervals(vector<vector<int>>& intervals) {sort(intervals.begin(), intervals.end(), cmp);int result = 0;for (int i = 1; i < intervals.size(); i++){if (intervals[i][0] < intervals[i - 1][1]) // 重叠{result++;intervals[i][1] = min(intervals[i - 1][1], intervals[i][1]); // 注意这里要设置min,否则直接intervals[i][1] = intervals[i - 1][1]也会有问题}}return result;}
};

763. 划分字母区间

思路是能想到,但是实现起来就没那么得心应手了

使用哈希表来记录字母最后一次出现的位置还是比较巧妙的。

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

56. 合并区间

有了前面的经验,这道题终于是自己解决了。

class Solution {static bool cmp(const vector<int> &a, const vector<int> &b){if (a[0] == b[0]) return a[1] < b[1];return a[0] < b[0];}public:vector<vector<int>> merge(vector<vector<int>>& intervals) {sort(intervals.begin(), intervals.end(), cmp);vector<vector<int>> rst;int left = intervals[0][0], right = intervals[0][1];for (int i = 1; i < intervals.size(); i++){if (intervals[i][0] <= right) // 重叠{right = max(right, intervals[i][1]);}else{rst.push_back({left, right});left = intervals[i][0];right = intervals[i][1];}}rst.push_back({left, right});return rst;}
};

http://www.ppmy.cn/news/863766.html

相关文章

揭秘GPT-4;Adobe Firefly AI 扩大测试规模

&#x1f989; AI新闻 &#x1f680; Adobe Firefly AI 扩大测试规模&#xff0c;支持100多种语言的输入 摘要&#xff1a;Adobe宣布扩大测试规模&#xff0c;Adobe Firefly AI现在支持100多种语言的 prompts 输入。网页测试版Firefly已经扩充了罗马尼亚语等多种语言&#xf…

算法安全自评估制度建设风险研判之算法滥用与算法漏洞

在我们的现代社会中&#xff0c;算法无处不在&#xff0c;它们以一种我们难以想象的方式影响着我们的生活。从我们的社交媒体喜好&#xff0c;到搜索引擎结果&#xff0c;再到可能的就业机会&#xff0c;无一不在算法的调控之中。然而&#xff0c;随着算法的广泛使用&#xff0…

数据备份、还原、视图、索引 操作练习

目录 备份与还原&#xff1a; 题目要求&#xff1a; 索引和视图 题目要求&#xff1a; 备份与还原&#xff1a; 在数据库booksDB中创建表books、authorbook、authorbook&#xff1a; 题目要求&#xff1a; 1、mysqldump -uroot -pRyh201314% booksDB > /backup/db/boo…

C++笔记之虚析构函数的作用

C笔记之虚析构函数的作用 C中的虚析构函数用于确保通过基类指针删除派生类对象时&#xff0c;能正确调用派生类的析构函数&#xff0c;从而释放派生类对象所占用的资源。 在C中&#xff0c;析构函数用于释放对象所占用的资源&#xff0c;并进行清理操作。它与类的构造函数相对…

诺唯赞、澳华内镜登陆科创板;博腾生物与恺佧生物就mRNA技术达成合作 | 医药健闻...

| 行业焦点 南京诺唯赞生物科技股份有限公司在上海证券交易所上市&#xff0c;登陆科创板交易市场。股票简称&#xff1a;诺唯赞&#xff0c;股票代码&#xff1a;688105。在生命科学领域&#xff0c;已成功推出包含高通量测序建库系列、PCR系列、 qPCR系列、分子克隆系列、逆转…

拓嘉启远电商:拼多多店铺访客少怎样解决

一、拼多多店铺访客少怎样解决&#xff1f; 1、平台活动。这是商家推广可以获得高流量的来源&#xff0c;多去了解平台活动&#xff0c;了解活动规则&#xff0c;如果自己店铺和商品都是符合规则的&#xff0c;自己也有那个需求&#xff0c;那么就可以参与拼多多报名活动。提高…

天承科技IPO过会:拟募资4亿 童茂军合计持股42%

雷递网 雷建平 3月14日 广东天承科技股份有限公司&#xff08;简称&#xff1a;“天承科技”&#xff09;日前IPO过会&#xff0c;准备在科创板上市。 天承科技计划募资4亿元&#xff0c;其中&#xff0c;1.7亿元用于年产3万吨用于高端印制线路板、显示屏等产业的专项电子化学品…

智云通CRM:买对了吗——大客户采购的方案实施

一旦采购合同签署后&#xff0c;供应商就要履行合同&#xff0c;按时交付产品进场使用&#xff0c;或实施服务方案。不过&#xff0c;无论对供应商还是客户来说&#xff0c;双方的合作并没有就此结束。 在这个阶段&#xff0c;客户会评估此次合作的供应商做事是否靠谱&#x…