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

贪心-用最少的箭射球

一支弓箭可以沿着 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 射爆另外两个气球

重点:

1.局部最优:每支箭都能射中交集最多的球;整体最优:用最少的箭射中所有的球

2.如何避免重复射到球:将球的边界缩小为交集的边界,即两个球的右边界的较小者

public static void main(String[] args) {int[][] a ={{10,16},{2,8},{1,6},{7,12}};System.out.println(shejian(a));}public static int shejian(int[][] arr){int count = 1;Arrays.sort(arr, (a, b) -> Integer.compare(a[0], b[0]));for (int i = 1; i < arr.length; i++) {if (arr[i][0] > arr[i - 1][1]){count++;}else {arr[i][1] = Math.min(arr[i][1], arr[i - 1][1]);//记录右边界--球能打到的最远地方,第二个的起始点避免重复射箭}}return count;}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 端口大全说明,HTTP,TCP,UDP常见端口对照表
  • 数据流图例题
  • SQL的基本语句(2024年9月最新版 入门级)
  • Python应用指南:获取行政区最小外接矩形
  • containerd二进制安装
  • React第二章(开发环境搭建 )
  • 78-java 多线程如何共享数据
  • 一篇文章了解Pytest单元测试框架
  • Vue3前端框架学习记录
  • Leetcode sql high frequency questions 50 (based)
  • Go日志系统
  • 【Go】-Gin框架
  • 什么是Aware注入?
  • Python之异常处理与程序调试(Exception Handling and Program Debugging in Python)
  • 银河麒麟v10-sp3 -x86系统创建新分区扩展lvm
  • -------------------- 第二讲-------- 第一节------在此给出链表的基本操作
  • HashMap剖析之内部结构
  • javascript 总结(常用工具类的封装)
  • js正则,这点儿就够用了
  • Laravel 菜鸟晋级之路
  • Markdown 语法简单说明
  • Object.assign方法不能实现深复制
  • Otto开发初探——微服务依赖管理新利器
  • Python十分钟制作属于你自己的个性logo
  • quasar-framework cnodejs社区
  • scala基础语法(二)
  • 产品三维模型在线预览
  • 如何打造100亿SDK累计覆盖量的大数据系统
  • 十年未变!安全,谁之责?(下)
  • 想使用 MongoDB ,你应该了解这8个方面!
  • 小而合理的前端理论:rscss和rsjs
  • 《天龙八部3D》Unity技术方案揭秘
  • ​二进制运算符:(与运算)、|(或运算)、~(取反运算)、^(异或运算)、位移运算符​
  • #07【面试问题整理】嵌入式软件工程师
  • #HarmonyOS:基础语法
  • (1)Nginx简介和安装教程
  • (C语言)fread与fwrite详解
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第5节(封闭类和Final方法)
  • (Git) gitignore基础使用
  • (编程语言界的丐帮 C#).NET MD5 HASH 哈希 加密 与JAVA 互通
  • (多级缓存)多级缓存
  • (附源码)spring boot火车票售卖系统 毕业设计 211004
  • (附源码)springboot 个人网页的网站 毕业设计031623
  • (附源码)SSM环卫人员管理平台 计算机毕设36412
  • (附源码)计算机毕业设计SSM基于java的云顶博客系统
  • (深入.Net平台的软件系统分层开发).第一章.上机练习.20170424
  • (一)WLAN定义和基本架构转
  • (原創) 如何使用ISO C++讀寫BMP圖檔? (C/C++) (Image Processing)
  • .net CHARTING图表控件下载地址
  • .NET/C# 使窗口永不获得焦点
  • .Net多线程总结
  • .skip() 和 .only() 的使用
  • /usr/bin/python: can't decompress data; zlib not available 的异常处理
  • @JsonSerialize注解的使用
  • [ element-ui:table ] 设置table中某些行数据禁止被选中,通过selectable 定义方法解决