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

【c++刷题笔记-数组】day29:452. 用最少数量的箭引爆气球、 435. 无重叠区间 、 763.划分字母区间

452. 用最少数量的箭引爆气球 - 力扣(LeetCode)

思路:先按照左边界排序,当前的左边界大于前一个的右边界的时候,表示没有覆盖所以需要一根箭,反之则要更新为最小的右边界

重点:是区间覆盖问题,判断好边界

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

435. 无重叠区间 - 力扣(LeetCode)

思路:统计覆盖的区间个数,区间覆盖问题,判断好边界

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 ans=0;for(int i=1;i<intervals.size();i++){if(intervals[i][0]<intervals[i-1][1]){ans++;intervals[i][1]=min(intervals[i][1],intervals[i-1][1]);//更新有边界}}return ans;}
};

763. 划分字母区间 - 力扣(LeetCode)

思路:抽象、为区间覆盖、问题统计最字母最远下标位置,更新右边界,到达有边界的时候表示可以划分为一个区间,然后再更新左边界

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

总结

区间覆盖问题,先排序,判断好边界。

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

相关文章:

  • 【数据结构】链表带环问题分析及顺序表链表对比分析
  • 快速解决找不到krpt.dll,无法继续执行代码问题
  • C# List、LinkedList、Dictionary性能对比
  • 【Spring Cloud】微服务的简单搭建
  • 全球首款商用,AI为视频自动配音配乐产品上线
  • Git管理源代码、git简介,工作区、暂存区和仓库区,git远程仓库github,创建远程仓库、配置SSH,克隆项目
  • 【机器学习】机器学习与时间序列分析的融合应用与性能优化新探索
  • 执行力不足是因为选择模糊
  • 力扣 225题 用队列实现栈 记录
  • 中英双语介绍意大利(Italy):有哪些著名景点、出名品牌?
  • Python【打包exe文件两步到位】
  • 基于模型预测控制的PMSM系统速度环控制理论推导及仿真搭建
  • 【PYG】GNN和全连接层(FC)分别在不同的类中,使用反向传播联合训练,实现端到端的训练过程
  • vue3使用方式汇总
  • Turborepo简易教程
  • 初中物理知识点总结(人教版)
  • ChatGPT-4o大语言模型优化、本地私有化部署、从0-1搭建、智能体构建等高级进阶
  • 【开源项目】LocalSend 局域网文件传输工具
  • ARM/Linux嵌入式面经(十一):地平线嵌入式实习
  • 基于Redis的分布式锁
  • 如何将 Apifox 的自动化测试与 Jenkins 集成?
  • 【FFmpeg】av_write_frame函数
  • 【算法专题】双指针算法
  • Lock与ReentrantLock
  • ARM/Linux嵌入式面经(十三):紫光同芯嵌入式
  • 名企面试必问30题(二十四)—— 说说你空窗期做了什么?
  • 基础权限储存
  • Could not find a package configuration file provided by “roscpp“ 的参考解决方法
  • 运维系列.Nginx配置中的高级指令和流程控制
  • Virtualbox和ubuntu之间的关系