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

贪心算法---用最少数量的箭引爆气球

题目:

有一些球形气球贴在一堵用 XY 平面表示的墙面上。墙面上的气球记录在整数数组 points ,其中points[i] = [xstart, xend] 表示水平直径在 xstart 和 xend之间的气球。你不知道气球的确切 y 坐标。

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

给你一个数组 points返回引爆所有气球所必须射出的 最小 弓箭数 

思路:

将point数组按照左边界从小到大进行排序,如果正在遍历的气球与它前一个气球挨着,则将该气球的右边界更新为这两个气球的最小右边界,也就是箭射中的位置。如果正在遍历的气球与它前一个气球不挨着,那么箭数需要增加。

代码:

    public int findMinArrowShots(int[][] points) {Arrays.sort(points,(a,b)->Integer.compare(a[0]-b[0]));//将point按照左边界从小到大排序int count=1;//箭的数量,至少一只for(int i=1;i<points.length;i++){if(points[i][0]>points[i-1][1]){//两个气球不重叠不挨着需要一箭count++;}else{points[i][1]=Math.min(points[i][1],points[i-1][1]);//两个气球挨着,更新重叠气球最小右边界,也就是剑射出的位置}}return count;}

注意:排序时使用Integer内置的compare方法不会溢出。使用return a[0]-b[0]会有例子溢出

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【计算机网络】应用层HTTP协议
  • 数据赋能(193)——开发:数据服务——实施过程、应用特点
  • 142.环形链表二-力扣
  • Day 7:条件编译
  • 公务员面试(c语言)
  • ISO C++ 和 GNU C++ 的区别
  • MFC工控项目实例之十添加系统测试对话框
  • 苹果笔记本电脑能不能玩游戏?苹果电脑玩游戏咋样?
  • 谷歌账号被停用了怎么申诉?申诉了好多天没有收到回复怎么办?申诉了很多次都被拒了怎么办?只有一个办法
  • FPGA(Field-Programmable Gate Array,现场可编程门阵列)开发入门
  • 如何获取高质量的网站反向链接?
  • TCP与UDP对比
  • 阿里云云盘手动扩展方法
  • xss-labs通关攻略 11-15关
  • Rust 中 `madvise` 和 `posix_fadvise`的区别
  • Brief introduction of how to 'Call, Apply and Bind'
  • co.js - 让异步代码同步化
  • Docker 笔记(2):Dockerfile
  • MySQL用户中的%到底包不包括localhost?
  • Python实现BT种子转化为磁力链接【实战】
  • Vue小说阅读器(仿追书神器)
  • vue自定义指令实现v-tap插件
  • Zsh 开发指南(第十四篇 文件读写)
  • 百度小程序遇到的问题
  • 技术攻略】php设计模式(一):简介及创建型模式
  • 让你的分享飞起来——极光推出社会化分享组件
  • 如何正确配置 Ubuntu 14.04 服务器?
  • 使用agvtool更改app version/build
  • 使用putty远程连接linux
  • 数组的操作
  • 思否第一天
  • 详解NodeJs流之一
  • 一些css基础学习笔记
  • 因为阿里,他们成了“杭漂”
  • 职业生涯 一个六年开发经验的女程序员的心声。
  • 3月27日云栖精选夜读 | 从 “城市大脑”实践,瞭望未来城市源起 ...
  • scrapy中间件源码分析及常用中间件大全
  • 专访Pony.ai 楼天城:自动驾驶已经走过了“从0到1”,“规模”是行业的分水岭| 自动驾驶这十年 ...
  • ​人工智能之父图灵诞辰纪念日,一起来看最受读者欢迎的AI技术好书
  • ​一帧图像的Android之旅 :应用的首个绘制请求
  • $Django python中使用redis, django中使用(封装了),redis开启事务(管道)
  • (1)虚拟机的安装与使用,linux系统安装
  • (2022版)一套教程搞定k8s安装到实战 | RBAC
  • (8)Linux使用C语言读取proc/stat等cpu使用数据
  • (C语言)求出1,2,5三个数不同个数组合为100的组合个数
  • (ISPRS,2021)具有遥感知识图谱的鲁棒深度对齐网络用于零样本和广义零样本遥感图像场景分类
  • (搬运以学习)flask 上下文的实现
  • (二)JAVA使用POI操作excel
  • (附源码)php新闻发布平台 毕业设计 141646
  • (附源码)计算机毕业设计ssm电影分享网站
  • (四)js前端开发中设计模式之工厂方法模式
  • (一)u-boot-nand.bin的下载
  • (转)自己动手搭建Nginx+memcache+xdebug+php运行环境绿色版 For windows版
  • .gitignore文件忽略的内容不生效问题解决
  • .halo勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复