博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Leetcode 452.用最少数量的箭引爆气球
阅读量:4314 次
发布时间:2019-06-06

本文共 1281 字,大约阅读时间需要 4 分钟。

用最少数量的箭引爆气球

在二维空间中有许多球形的气球。对于每个气球,提供的输入是水平方向上,气球直径的开始和结束坐标。由于它是水平的,所以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(射爆另外两个气球)。

 

思路

 
1 class Solution { 2     public int findMinArrowShots(int[][] points) { 3         if(points.length==0) 4             return 0; 5         Ballon[] ballons = new Ballon[points.length]; 6         for(int i=0;i
() {10 @Override11 public int compare(Ballon o1, Ballon o2) {12 return o1.end-o2.end;13 }14 });15 int ans = 1;16 int right = ballons[0].end;17 for(Ballon ballon:ballons)18 {19 if(ballon.start>right)20 {21 right=ballon.end;22 ans++;23 }24 }25 return ans;26 27 }28 }29 30 class Ballon{31 int start;32 int end;33 34 public Ballon(int start, int end) {35 this.start = start;36 this.end = end;37 }38 }
 

 

 

转载于:https://www.cnblogs.com/kexinxin/p/10269849.html

你可能感兴趣的文章
Python天天美味(总) --转
查看>>
Spring Framework tutorial
查看>>
【VS开发】win7下让程序默认以管理员身份运行
查看>>
【机器学习】Learning to Rank 简介
查看>>
Unity 使用实体类
查看>>
【转】通过文件锁实现,程序开始运行时,先判断文件是否存在,若存在则表明该程序已经在运行了,如果不存在就用open函数创建该文件,程序退出时关闭文件并删除文件...
查看>>
MySQL常见注意事项及优化
查看>>
流畅的Python (Fluent Python) —— 前言
查看>>
Jquery-menu-aim流畅的菜单滑动体验
查看>>
Jquery EasyUI修改行背景的两种方式
查看>>
生成器模式(Builder)C++实现
查看>>
Centos 7.5安装 Redis 5.0.0
查看>>
嵌入式Linux学习笔记(0)基础命令。——Arvin
查看>>
二分图匹配
查看>>
c++ 模板template
查看>>
javascript中的string对象
查看>>
CString的成员函数详解
查看>>
Appium Studio 初体验(windows做ios自动化,录制appium脚本)
查看>>
学习java前端 两种form表单提交方式
查看>>
Linux常用命令
查看>>