当前位置: 首页 > news >正文

Day36 435无重叠区间 763划分字母区间

435 无重叠区间

给定一个区间的集合,找到需要移除区间的最小数量,使剩余区间互不重叠。

注意: 可以认为区间的终点总是大于它的起点。 区间 [1,2] 和 [2,3] 的边界相互“接触”,但没有相互重叠。

本题与上一题类似:

如果按照左边界排:

class Solution {
public:static bool cmp(const vector<int>& a, const vector<int>& b) {return a[0] < b[0];}int eraseOverlapIntervals(vector<vector<int>>& intervals) {sort(intervals.begin(), intervals.end(), cmp);int count = 0;for (int i = 1; i < intervals.size(); i++) {if (intervals[i - 1][1] > intervals[i][0]) {count++;intervals[i][1] = min(intervals[i - 1][1], intervals[i][1]);}}return count;}
};

 

class Solution {
public:// 按照区间右边界排序static bool cmp (const vector<int>& a, const vector<int>& b) {return a[1] < b[1];}int eraseOverlapIntervals(vector<vector<int>>& intervals) {if (intervals.size() == 0) return 0;sort(intervals.begin(), intervals.end(), cmp);int count = 1; // 记录非交叉区间的个数int end = intervals[0][1]; // 记录区间分割点for (int i = 1; i < intervals.size(); i++) {if (end <= intervals[i][0]) {end = intervals[i][1];count++;}}return intervals.size() - count;}
};

 763 划分字母区间

字符串 S 由小写字母组成。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。返回一个表示每个字符串片段的长度的列表。

示例:

  • 输入:S = "ababcbacadefegdehijhklij"
  • 输出:[9,7,8] 解释: 划分结果为 "ababcbaca", "defegde", "hijhklij"。 每个字母最多出现在一个片段中。 像 "ababcbacadefegde", "hijhklij" 的划分是错误的,因为划分的片段数较少。

class Solution {
public:vector<int> partitionLabels(string S) {int hash[27] = {0}; // i为字符,hash[i]为字符出现的最后位置for (int i = 0; i < S.size(); i++) { // 统计每一个字符最后出现的位置hash[S[i] - 'a'] = i;}vector<int> result;int left = 0;int right = 0;for (int i = 0; i < S.size(); i++) {right = max(right, hash[S[i] - 'a']); // 找到字符出现的最远边界if (i == right) {result.push_back(right - left + 1);left = i + 1;}}return result;}
};

http://www.lryc.cn/news/287983.html

相关文章:

  • 【Servlet】如何编写第一个Servlet程序
  • 读懂比特币—bitcoin代码分析(五)
  • uniapp使用uQRCode插件生成二维码的简单使用
  • 【寒假每日一题·2024】AcWing 4965. 三国游戏(补)
  • docker 安装mongodb 数据库
  • 整数反转算法(leetcode第7题)
  • 微信小程序(十)表单组件(入门)
  • xcode 设置 ios苹果图标,为Flutter应用程序配置iOS图标
  • 什么是IDE?新手用哪个IDE比较好?
  • 【数据库学习】pg安装与运维
  • 第二篇【传奇开心果短博文系列】Python的OpenCV库技术点案例示例:图像处理
  • 【vue oidc-client】invalid_requestRequest Id: 0HN0OOPFRLSF2:00000002
  • 什么是中间人攻击? ssh 连接出现 Host key verification failed 解决方法
  • 数据结构系统刷题
  • 【RabbitMQ】延迟队列之死信交换机
  • 2024交通运输工程与土木建筑工程国际会议(ICTECCE2024)
  • 搜索引擎Elasticsearch了解
  • 【操作系统基础】【CPU访存原理】:寄存 缓存 内存 外存、内存空间分区、虚拟地址转换、虚拟地址的映射
  • windows下git pull超时,ping不通github
  • springboot快速写接口
  • 数据结构排序算详解(动态图+代码描述)
  • 2024-01-25 力扣高频SQL50题目1174. 即时食物配送
  • java web 校园健康管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目
  • 回归预测 | Matlab基于SSA-SVR麻雀算法优化支持向量机的数据多输入单输出回归预测
  • Java转成m3u8,hls格式
  • jmeter之接口测试实现参数化(利用函数助手),参数值为1-9(自增的数字)
  • 如何在 Ubuntu 22.04 上安装 Apache Web 服务器
  • 【python爬虫】爬虫编程技术的解密与实战
  • VisualSVN Server下载安装和使用方法、服务器搭建、使用TortoiseSvn将项目上传到云端服务器、各种错误解决方法
  • Python模块与包:扩展功能、提高效率的利器