Leetcode 452. Minimum Number of Arrows to Burst Balloons 射箭 解题报告
来源:互联网 发布:真心话大冒险的软件 编辑:程序博客网 时间:2024/05/19 00:17
1 解题思想
这道题是射箭的,我们可以认为这个给了如下一些东西:
给了一堆区间[start,end],然后现在射箭的意思是箭在某一个位置,只要在这个点的区间内,那么他就可以射中
那么现在有一堆这样的区间,问最少用多少箭可以射中全部?
做法就是:
排序+贪心法。。。很标准的解题方式
2 原题
There are a number of spherical balloons spread in two-dimensional space. For each balloon, provided input is the start and end coordinates of the horizontal diameter. Since it's horizontal, y-coordinates don't matter and hence the x-coordinates of start and end of the diameter suffice. Start is always smaller than end. There will be at most 104 balloons.An arrow can be shot up exactly vertically from different points along the x-axis. A balloon with xstart and xend bursts by an arrow shot at x if xstart ≤ x ≤ xend. There is no limit to the number of arrows that can be shot. An arrow once shot keeps travelling up infinitely. The problem is to find the minimum number of arrows that must be shot to burst all balloons.Example:Input:[[10,16], [2,8], [1,6], [7,12]]Output:2Explanation:One way is to shoot one arrow for example at x = 6 (bursting the balloons [2,8] and [1,6]) and another arrow at x = 11 (bursting the other two balloons).Subsc
3 AC解
public class Solution { public int findMinArrowShots(int[][] points) { if(points==null || points.length==0) return 0; //优先按照起点位置排序,然后按照结束位置排序 Arrays.sort(points, ( x , y) -> x[0] == y[0] ? x[1] - y[1] : x[0] -y[0]); int count = 1; int arrowLimit = points[0][1]; //贪心法,基于上一个箭,记录当前能够射穿的所有 for(int i=1;i<points.length;i++) { if(points[i][0]<=arrowLimit) { arrowLimit=Math.min(arrowLimit, points[i][1]); } else { count++; arrowLimit=points[i][1]; } } return count; }}
0 0
- Leetcode 452. Minimum Number of Arrows to Burst Balloons 射箭 解题报告
- LeetCode解题报告 452. Minimum Number of Arrows to Burst Balloons [medium]
- [LeetCode] 452. Minimum Number of Arrows to Burst Balloons 解题报告
- [Leetcode] 452. Minimum Number of Arrows to Burst Balloons 解题报告
- LeetCode 452. Minimum Number of Arrows to Burst Balloons
- 【leetcode】452. Minimum Number of Arrows to Burst Balloons【M】
- LeetCode 452. Minimum Number of Arrows to Burst Balloons
- Leetcode 452. Minimum Number of Arrows to Burst Balloons[medium]
- [leetcode] 452. Minimum Number of Arrows to Burst Balloons
- Leetcode-452. Minimum Number of Arrows to Burst Balloons
- 【LeetCode】 452. Minimum Number of Arrows to Burst Balloons
- [Leetcode] 452. Minimum Number of Arrows to Burst Balloons
- [leetcode]452. Minimum Number of Arrows to Burst Balloons
- [LeetCode]452. Minimum Number of Arrows to Burst Balloons
- LeetCode 452. Minimum Number of Arrows to Burst Balloons
- LeetCode 452. Minimum Number of Arrows to Burst Balloons
- LeetCode 452. Minimum Number of Arrows to Burst Balloons
- 452. Minimum Number of Arrows to Burst Balloons| Leetcode Greedy
- VMware上Ubuntu实现和windows复制粘贴
- visual studio随机数问题
- TestNG系列-第五章 测试方法、测试类和测试分组(续1)
- Java语言基础-Java5对数组的支持-方法的可变参数
- 修改/etc/resolv.conf又恢复到原来的状态?
- Leetcode 452. Minimum Number of Arrows to Burst Balloons 射箭 解题报告
- 分享统计Java web项目的行数的代码
- Latex 箭头、下标、符号上下写文字、正方形和三角形
- 自学开始,回归CSDN
- 图片压缩
- 面向对象分析法和结构化分析法
- GET PAYROLL 用逻辑数据库开发HR报表
- 理解透明度原理
- eclipse配置方法