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

代码随想录算法训练营第三十天|查找重叠区间、划分字母区间

用最少数量的箭引爆气球 leetcode 452

首先对数组按照左边界从小到大排序,遍历数组,判断当前气球的左边界是否与上一个气球的右边界有重合,如果没有箭数加一,如果有则更新当前气球右边界(取当前气球与上一个气球右边界的最小值)。难点就在于判断当前气球与上一个气球重叠之后,怎么判断下一个气球与当前气球是否重叠,就需要更新气球右边界。

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 res=1;for(int i=1;i<points.size();i++){if(points[i][0]>points[i-1][1]) res++;else points[i][1]=min(points[i][1],points[i-1][1]);}return res;}
};

无重叠区间 leetcode 435

本题和上一题类似都是找重叠区间,不同的是对结果的++,上一题是遇到不重叠的++,本题是遇到重叠的++。

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 res=0;for(int i=1;i<intervals.size();i++){if(intervals[i][0]<intervals[i-1][1]) {res++;intervals[i][1]=min(intervals[i][1],intervals[i-1][1]);}}return res;}
};

划分字母区间 leetcode 763

首先记录每一个字母出现的最远距离,然后便利字符串不断用当前字母出现最远距离更新右边界,直到右边界等于当前遍历位置,存结果,更新左边界继续向后遍历。

lass Solution {
public:vector<int> partitionLabels(string s) {int hash[27]={0};for(int i=0;i<s.size();i++){  //记录每一个字母出现的最远距离hash[s[i]-'a']=i; }int left=0,right=0;vector<int> res;for(int i=0;i<s.size();i++){right=max(right,hash[s[i]-'a']);if(i==right){res.push_back(right-left+1);left=i+1;}}return res;}
};

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 自动化测试必会之数据驱动测试
  • 【数据结构和算法】时间复杂度和空间复杂度
  • springBoot框架
  • 守护数字堡垒:全面掌握安全配置管理
  • 什么是令牌桶算法?工作原理是什么?使用它有哪些优点和注意事项?
  • C++ | 深入理解C++的IO流:从控制台输出流到文件输出流的应用
  • LeetCode面试题Day8|LeetCode13 罗马数字转整数、LeetCode12 整数转罗马数字
  • Events and the Kernel
  • HarmonyOS NEXT星河版零基础入门(2)
  • 3-2 光敏电阻(智能应用篇)
  • 构建坚不可摧的防线:全面指南到高效信息安全管理体系
  • 力扣第五十六题——合并区间
  • 设计模式-装饰者模式
  • ubuntu创建txt
  • 2024年TI杯E题-三子棋游戏装置方案分享-jdk123团队-第二弹 手搓机械臂
  • 【Linux系统编程】快速查找errno错误码信息
  • 【从零开始安装kubernetes-1.7.3】2.flannel、docker以及Harbor的配置以及作用
  • github指令
  • JavaScript 基本功--面试宝典
  • JavaScript学习总结——原型
  • java第三方包学习之lombok
  • LeetCode29.两数相除 JavaScript
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • Quartz实现数据同步 | 从0开始构建SpringCloud微服务(3)
  • Spring框架之我见(三)——IOC、AOP
  • Vue UI框架库开发介绍
  • 安装python包到指定虚拟环境
  • 更好理解的面向对象的Javascript 1 —— 动态类型和多态
  • 机器学习学习笔记一
  • 简析gRPC client 连接管理
  • 思考 CSS 架构
  • 用element的upload组件实现多图片上传和压缩
  • Python 之网络式编程
  • Unity3D - 异步加载游戏场景与异步加载游戏资源进度条 ...
  • ​软考-高级-信息系统项目管理师教程 第四版【第14章-项目沟通管理-思维导图】​
  • ​中南建设2022年半年报“韧”字当头,经营性现金流持续为正​
  • #### go map 底层结构 ####
  • #Linux(权限管理)
  • #LLM入门|Prompt#2.3_对查询任务进行分类|意图分析_Classification
  • #mysql 8.0 踩坑日记
  • #每天一道面试题# 什么是MySQL的回表查询
  • (9)YOLO-Pose:使用对象关键点相似性损失增强多人姿态估计的增强版YOLO
  • (Matalb时序预测)WOA-BP鲸鱼算法优化BP神经网络的多维时序回归预测
  • (二)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (附源码)spring boot球鞋文化交流论坛 毕业设计 141436
  • (经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
  • (四)TensorRT | 基于 GPU 端的 Python 推理
  • (转)VC++中ondraw在什么时候调用的
  • (转)可以带来幸福的一本书
  • .bat批处理出现中文乱码的情况
  • .mysql secret在哪_MYSQL基本操作(上)
  • .Net Core/.Net6/.Net8 ,启动配置/Program.cs 配置
  • .NET Framework杂记
  • .NET 分布式技术比较
  • .NET 直连SAP HANA数据库