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

力扣452:用最少数量的箭射爆气球(排序+贪心)

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

从简单情况入手:如果只有两个区间,则只要这两个区间有公共部分,就只需用一只箭可以射穿。如果现在加入第三个区间,为了方便看是否有公共部分,可以先将其按照左端点大小排序。如果第三个区间的左端点比前两个区间的公共部分的右端点要小,那么不需要增加新的箭。反之就需要增加新的箭。前两个区间公共部分的右端点就是这两个区间右端点的最小值。

现在思路很清晰了。只需遍历每个区间,看这个区间的左端点比前面所有区间的公共部分的右端点(即最小右端点)大或者小即可。同时维护公共部分的右端点。

class Solution 
{
public:int findMinArrowShots(vector<vector<int>>& points) {if(points.size()==0) return 0;sort(points.begin(),points.end(),[](const vector<int>&a,const vector<int>&b){return a[0]<b[0];});//按照左端点排序int res=1;//至少需要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;}
};

http://www.dtcms.com/a/357557.html

相关文章:

  • 从“走过场”到“看得见”的成长:在线学习系统如何重塑企业培训价值
  • Unity DateTime 相关
  • 数据分析编程第六步:大数据运算
  • 【leetcode】114. 二叉树展开为链表
  • 死锁检测 及其测试用例
  • Linux的环境变量
  • 10迁移TiDB数据库数据到GaussDB
  • Java实现PDF表格转换为CSV
  • 消失的数字
  • RAG 系统核心:深入理解向量相似度匹配与文本向量化
  • Python中将py程序打包成exe可执行文件并封装环境以及本地依赖+单个exe和文件目录两种状态(亲测可用建议收藏)
  • docker 下载镜像报错
  • [HFCTF2020]EasyLogin
  • 日本IT|C++相关面试及问答技巧分享
  • STM32项目分享:基于单片机的自行车测速系统设计
  • Win11 压缩实测:Win11 的压缩软件的最佳配置和使用方式
  • 网站酷炫换皮肤?——PC 端 H5 换肤方案实战分享
  • WebGIS开发智慧校园(8)地图控件
  • A股大盘数据-20250829 分析
  • 03.《交换的底层逻辑:从基础到应用》
  • vue3中安装tailwindcss
  • ​​字节跳动重磅开源 Seed-OSS 大模型系列,12T tokens训练,原生支持512K长上下文​
  • python 2025/7/28
  • 【完整源码+数据集+部署教程】工地建筑进度监测系统源码和数据集:改进yolo11-SDI
  • 【笔记】扩散模型(一二)U-ViT|Diffusion with Transformer
  • 智慧园区系统:基于Java微服务架构与全栈信创国产化的数字化赋能平台
  • 人工智能一些基础概念与应用场景学习笔记
  • C++基础(③反转字符串(字符串 + 双指针))
  • solidity地址、智能合约、交易概念
  • Pointer--Learing MOOC-C语言第九周指针