leetcode 452. 用最少数量的箭引爆气球(贪心算法)
在二维空间中有许多球形的气球。对于每个气球,提供的输入是水平方向上,气球直径的开始和结束坐标。由于它是水平的,所以纵坐标并不重要,因此只要知道开始和结束的横坐标就足够了。开始坐标总是小于结束坐标。
一支弓箭可以沿着 x 轴从不同点完全垂直地射出。在坐标 x 处射出一支箭,若有一个气球的直径的开始和结束坐标为 xstart,xend, 且满足 xstart ≤ x ≤ xend,则该气球会被引爆。可以射出的弓箭的数量没有限制。 弓箭一旦被射出之后,可以无限地前进。我们想找到使得所有气球全部被引爆,所需的弓箭的最小数量。
给你一个数组 points ,其中 points [i] = [xstart,xend] ,返回引爆所有气球所必须射出的最小弓箭数。
示例 1:
输入:points = [[10,16],[2,8],[1,6],[7,12]]
输出:2
解释:对于该样例,x = 6 可以射爆 [2,8],[1,6] 两个气球,以及 x = 11 射爆另外两个气球
代码
class Solution {public int findMinArrowShots(int[][] points) {if(points.length==0) return 0;Arrays.sort(points, new Comparator<int[]>() {//按区间末尾的大小,从小到大排序@Overridepublic int compare(int[] o1, int[] o2) {return o1[1]>o2[1]?1:-1;}});int res=1,preEnd=points[0][1];for(int i=0;i<points.length;i++){if(points[i][0]>preEnd)//如果当前气球的区间起始,不在前一个区间末尾,就需要另外一颗子弹{res++;preEnd=points[i][1];}}return res;}
}
leetcode 452. 用最少数量的箭引爆气球(贪心算法)相关推荐
- 452. 用最少数量的箭引爆气球(贪心算法+思路+详解)07
一:题目 在二维空间中有许多球形的气球.对于每个气球,提供的输入是水平方向上,气球直径的开始和结束坐标.由于它是水平的,所以纵坐标并不重要,因此只要知道开始和结束的横坐标就足够了.开始坐标总是小于结束 ...
- Java实现 LeetCode 452 用最少数量的箭引爆气球
452. 用最少数量的箭引爆气球 在二维空间中有许多球形的气球.对于每个气球,提供的输入是水平方向上,气球直径的开始和结束坐标.由于它是水平的,所以y坐标并不重要,因此只要知道开始和结束的x坐标就足够 ...
- 贪心法—LeetCode 452 用最少数量的箭引爆气球
用最少数量的箭引爆气球 题目: 在二维空间中有许多球形的气球.对于每个气球,提供的输入是水平方向上,气球直径的开始和结束坐标.由于它是水平的,所以y坐标并不重要,因此只要知道开始和结束的x坐标就足够了 ...
- LeetCode 452 用最少数量的箭引爆气球
题目描述 在二维空间中有许多球形的气球.对于每个气球,提供的输入是水平方向上,气球直径的开 始和结束坐标.由于它是水平的,所以纵坐标并不重要,因此只要知道开始和结束的横坐标 就足够了.开始坐标总是小于 ...
- 2022-4-12 Leetcode 452.用最少数量的箭引爆气球
找到最长的重叠区间 // class Solution {// public: // int findMinArrowShots(vector<vector<int>>& ...
- Suzy想吃烤蛋挞了Day35 | 贪心算法进行时:860. 柠檬水找零,406. 根据身高重建队列,452. 用最少数量的箭引爆气球
860. 柠檬水找零 solution 不要漏掉的一种情况是:如果收到了20,可以找10+5,或者5+5+5 class Solution:def lemonadeChange(self, bills ...
- 代码随想录35——贪心:860柠檬水找零、406根据身高重建队列、452用最少数量的箭引爆气球
文章目录 1.860柠檬水找零 1.1.题目 1.2.解答 2.406根据身高重建队列 2.1.题目 2.2.解答 3.452用最少数量的箭引爆气球 3.1.题目 3.2.解答 1.860柠檬水找零 ...
- 力扣记录:贪心算法3较难(1)区间问题——55 跳跃游戏,45 跳跃游戏II,452 用最少数量的箭引爆气球,435 无重叠区间,763 划分字母区间,56 合并区间
本次题目 55 跳跃游戏 45 跳跃游戏II 452 用最少数量的箭引爆气球 435 无重叠区间 763 划分字母区间 56 合并区间 55 跳跃游戏 局部最优:不管每次跳多少步,取最大跳跃步数,若覆 ...
- 代码随想录算法训练营第35天|860.柠檬水找零,406.根据身高重建队列,452. 用最少数量的箭引爆气球
代码随想录算法训练营第35天|860.柠檬水找零,406.根据身高重建队列,452. 用最少数量的箭引爆气球 860.柠檬水找零 406. 根据身高重建队列 452. 用最少数量的箭引爆气球 860. ...
最新文章
- 2021年大数据Spark(四十三):SparkStreaming整合Kafka 0.10 开发使用
- Linux环境程序栈溢出原理
- Linux下修改MAC地址总结
- elif在python中啥意思_python中elif 结构语句怎么判断?
- 【独家】手环新玩法,北京一卡通推出“刷刷手环”每天5000步每月返10元
- c语言回文字符串原理,回文串(c语言)注意字符串比较和字符比较的区别
- Python 按行读取文件内按分隔符分割字符串(去除空格和换行、字符串分割)
- 测试人员的系统性思维
- 图像分类——EfficientNet的学习笔记
- java generatedvalue_java-@GeneratedValue和@GenericGen之间的区别
- java 生成 pdf 标题 表格 注释 合并
- WIN7 Activation
- 这三个方法让你实现电脑截图转文字的操作
- sentaurus器件仿真(sdevice部分)(二)
- 浅谈软件项目规模估计——怎么估?
- vray for 3dmax分布式渲染故障疑难解答!
- vbs可以调用python脚本吗?
- 2008年世界顶级杀毒软件排行榜
- 论文中写伪代码的工具
- entity命名规则