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

算法题(55):用最少数量的箭引爆气球

审题:

本题需要我们找到最少需要的箭数,并返回

思路:

首先我们需要把本题描述的问题理解准确

(1)arrow从x轴任一点垂直射出

(2)一旦射出,无限前进

也就是说如果气球有公共区域(交集),那么只需要一个箭就可以射完,需要多少箭,其实就是要我们判断有多少个公共交集存在。

方法一:模拟法

由于数据较为混乱,不好判断交集,所以我们先按照左边界排序一下区间。

arrow表示箭射在x轴上射出的点(公共区间的右边界)

一共有两种可能的情况

情况1:该区间与前面的公共区间有交集,更新arrow的位置

情况2:该区间与前面的公共区间无交集。,说明需要另外一箭,num++,更新arrow

解题:

(1)预处理

疑问:为什么arrow指向交集右边界?

因为在已经按照左边界排序的前提下,我们判断新的区间是不是和公共区间有交集,看得就是新区间的左边界和公共区间的右边界,我们需要一个变量存右边界的值

(2)核心代码

注意:

这里我们单独用了一个if语句进行初次插入


452. 用最少数量的箭引爆气球 - 力扣(LeetCode)

http://www.lryc.cn/news/530674.html

相关文章:

  • 谭浩强C语言程序设计(4) 8章(下)
  • AlexNet论文代码阅读
  • 62.病毒在封闭空间中的传播时间|Marscode AI刷题
  • Elixir语言的安全开发
  • Rust 条件语句
  • 小红的合数寻找
  • 使用等宽等频法进行数据特征离散化
  • 解析 Oracle 中的 ALL_SYNONYMS 和 ALL_VIEWS 视图:查找同义词与视图的基础操作
  • AI协助探索AI新构型的自动化创新概念
  • 从0开始使用面对对象C语言搭建一个基于OLED的图形显示框架(OLED设备层封装)
  • 【Redis】Redis 经典面试题解析:深入理解 Redis 的核心概念与应用
  • TensorFlow 示例摄氏度到华氏度的转换(一)
  • 7.DP算法
  • Baklib构建高效协同的基于云的内容中台解决方案
  • 在C语言多线程环境中使用互斥量
  • 项目练习:重写若依后端报错cannot be cast to com.xxx.model.LoginUser
  • 代码随想录刷题笔记
  • AI智慧社区--人脸识别
  • 对象的实例化、内存布局与访问定位
  • React基础知识回顾详解
  • 开发第一个安卓页面
  • 物联网 STM32【源代码形式-ESP8266透传】连接OneNet IOT从云产品开发到底层MQTT实现,APP控制 【保姆级零基础搭建】
  • 微服务-配置管理
  • 基于SpringBoot的智慧康老疗养院管理系统的设计与实现(源码+SQL脚本+LW+部署讲解等)
  • 100.1 AI量化面试题:解释夏普比率(Sharpe Ratio)的计算方法及其在投资组合管理中的应用,并说明其局限性
  • LLMs之OpenAI o系列:OpenAI o3-mini的简介、安装和使用方法、案例应用之详细攻略
  • 深度解析:网站快速收录与网站安全性的关系
  • 【Rust自学】16.2. 使用消息传递来跨线程传递数据
  • 如何实现滑动网格的功能
  • 使用C# 如何获取本机连接的WIFI名称[C# ---1]