LeetCode:用最少的箭引爆气球【452】

题目描述

在二维空间中有许多球形的气球。对于每个气球,提供的输入是水平方向上,气球直径的开始和结束坐标。由于它是水平的,所以y坐标并不重要,因此只要知道开始和结束的x坐标就足够了。开始坐标总是小于结束坐标。平面内最多存在104个气球。

一支弓箭可以沿着x轴从不同点完全垂直地射出。在坐标x处射出一支箭,若有一个气球的直径的开始和结束坐标为 xstart,xend, 且满足  xstart ≤ x ≤ xend,则该气球会被引爆可以射出的弓箭的数量没有限制。 弓箭一旦被射出之后,可以无限地前进。我们想找到使得所有气球全部被引爆,所需的弓箭的最小数量。

Example:

输入:
[[10,16], [2,8], [1,6], [7,12]] 输出:
2 解释:
对于该样例,我们可以在x = 6(射爆[2,8],[1,6]两个气球)和 x = 11(射爆另外两个气球)。

题目分析

Java题解

class Solution {
public int findMinArrowShots(int[][] points) {
if(points.length==0)
return 0;
Ballon[] ballons = new Ballon[points.length];
for(int i=0;i<points.length;i++)
ballons[i]=new Ballon(points[i][0],points[i][1]); Arrays.sort(ballons, new Comparator<Ballon>() {
@Override
public int compare(Ballon o1, Ballon o2) {
return o1.end-o2.end;
}
});
int ans = 1;
int right = ballons[0].end;
for(Ballon ballon:ballons)
{
if(ballon.start>right)
{
right=ballon.end;
ans++;
}
}
return ans; }
} class Ballon{
int start;
int end; public Ballon(int start, int end) {
this.start = start;
this.end = end;
}
}

最新文章

  1. SQL Server Reporting Service(SSRS) 第三篇 SSRS Matrix用法
  2. 如何让你的UWP应用程序无缝调用几何作图
  3. WIN7远程桌面连接方法!
  4. 虚拟机安装Centos版本的linux
  5. textview设置字体的行距和字间距
  6. MYSQL内存--------启动mysql缓存机制,实现命中率100% 转
  7. Linux - tar命令过滤某个目录
  8. TCPIP通信
  9. Delphi 把一个ICO转换为BMP
  10. zTree应用实例详讲
  11. 给Cocos2D视图添加手势支持
  12. Java开发知识之Java的数字处理类Math类
  13. python智能提示配置
  14. Splay的初步学习
  15. k8s device plugin
  16. C# string 字符串详解 恒定 驻留
  17. 《码出高效 Java开发手册》第一章计算机基础(未整理)
  18. 无锁HashMap的原理与实现
  19. C++中文件流操作
  20. 【操作系统、UNIX环境编程】进程间通信

热门文章

  1. c# winform 最小化到托盘
  2. ScutSDK 0.9版本发布
  3. SecureCRT设置超级终端
  4. Qt编程简介与基本知识
  5. 转: 为什么做java的web开发我们会使用struts2,springMVC和spring这样的框架?
  6. 【C语言天天练(十一)】深入理解指针
  7. vs:如何添加.dll文件
  8. 【Sprint3冲刺之前】TD学生助手测试用例
  9. Flex版的2048游戏
  10. anaconda3.5 3.6 2.7