【算法刷题 | 贪心算法07】4.29(用最少数量的箭引爆气球、无重叠区间)

在这里插入图片描述

文章目录

  • 12.用最少数量的箭引爆气球
    • 12.1题目
    • 12.2解法:贪心
      • 12.2.1贪心思路
      • 12.2.2代码实现
  • 13.无重叠区间
    • 13.1题目
    • 13.2解法:贪心
      • 13.2.1贪心思路
      • 13.2.2代码实现

12.用最少数量的箭引爆气球

12.1题目

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

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

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

  • 示例一:
输入:points = [[10,16],[2,8],[1,6],[7,12]]
输出:2
解释:气球可以用2支箭来爆破:
-在x = 6处射出箭,击破气球[2,8]和[1,6]。
-在x = 11处发射箭,击破气球[10,16]和[7,12]。
  • 示例二:
输入:points = [[1,2],[3,4],[5,6],[7,8]]
输出:4
解释:每个气球需要射出一支箭,总共需要4支箭。
  • 示例三:
输入:points = [[1,2],[2,3],[3,4],[4,5]]
输出:2
解释:气球可以用2支箭来爆破:
- 在x = 2处发射箭,击破气球[1,2]和[2,3]。
- 在x = 4处射出箭,击破气球[3,4]和[4,5]。

12.2解法:贪心

12.2.1贪心思路

image-20240429104021561

12.2.2代码实现

	public int findMinArrowShots(int[][] points) {//1、按照起始元素排序Arrays.sort(points,(a,b)->Integer.compare(a[0],b[0]));int count=1;//2、从第二个元素开始遍历for(int i=1;i<points.length;i++){if(points[i][0]<=points[i-1][1]){//有重叠,更新重叠气球的最小右边界points[i][1]=Math.min(points[i][1],points[i-1][1]);}else{//没有重叠count++;}}return count;}

13.无重叠区间

13.1题目

给定一个区间的集合 intervals ,其中 intervals[i] = [starti, endi] 。返回 需要移除区间的最小数量,使剩余区间互不重叠

  • 示例一:
输入: intervals = [[1,2],[2,3],[3,4],[1,3]]
输出: 1
解释: 移除 [1,3] 后,剩下的区间没有重叠。
  • 示例二:
输入: intervals = [ [1,2], [1,2], [1,2] ]
输出: 2
解释: 你需要移除两个 [1,2] 来使剩下的区间没有重叠。
  • 示例三:
输入: intervals = [ [1,2], [2,3] ]
输出: 0
解释: 你不需要移除任何区间,因为它们已经是无重叠的了。

13.2解法:贪心

13.2.1贪心思路

  • 将数组按照起始元素排序;
  • 从第二个元素开始遍历,判断该区间和上一个区间是否有重叠
    • 有重叠,则更新重叠区间的最小右边界,并count++,表示需要去掉该区间;

13.2.2代码实现

	public int eraseOverlapIntervals(int[][] intervals) {//1、按照起始元素排序Arrays.sort(intervals,(a,b)->Integer.compare(a[0],b[0]));int count=0;//2、从第二个元素开始遍历for(int i=1;i<intervals.length;i++){if(intervals[i][0]<intervals[i-1][1]){//有重叠,更新重叠气球的最小右边界intervals[i][1]=Math.min(intervals[i][1],intervals[i-1][1]);count++;}else{//没有重叠}}return count;}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/5201.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python可视化图表

1.测试数据准备 2011年1月销售数据.txt 2011-01-01,4b34218c-9f37-4e66-b33e-327ecd5fb897,1689,湖南省 2011-01-01,5b6a6417-9a16-4243-9704-255719074bff,2353,河北省 2011-01-01,ae240260-68a9-4e59-b4c9-206be4c08a8d,2565,湖北省 2011-01-02,c833e851-880f-4e05-9de5-b5…

Flutter 有什么优异特性和革命性创新之处?

Flutter 有什么优异特性和革命性创新之处? 什么是 Flutter&#xff1f; Flutter mobile app SDK是一种新的方式来构建漂亮的原生移动应用程序&#xff0c;摆脱过去常见的“千篇一律”的应用程序。用过Flutter的人都对它赞赏有加&#xff1b; 相比较其他新型系统&#xff0c…

UI设计饱和了吗?赚钱吗?

UI设计饱和了吗&#xff1f;赚钱吗&#xff1f; 关于UI设计行业是否饱和了呢&#xff0c;这个问题其实比较有趣。在当下&#xff0c;请说出一个看起来没有饱和并且你会很想去做且能做的职业&#xff1f;有没有&#xff1f;没有&#xff01;很多人都太浮躁。眼高手低。 那么好…

如何用揿针治疗慢性咽炎?

点击文末领取揿针的视频教程跟直播讲解 在日常生活中&#xff0c;慢性咽炎极为常见&#xff0c;不致命却很恼人。一旦发作&#xff0c;你的喉咙每天都会不舒服&#xff0c;总感觉有东西堵着&#xff0c;但是呢&#xff0c;咳又咳不出来&#xff0c;咽也咽不下去&#xff0c;你…

五一劳动节,祝你劳动快乐,休息更快乐!

五一国际劳动节亦称“五一节”&#xff0c;在每年的五月一日。此节源于美国芝加哥城的工人大罢工。Labour Day also known as "51" on May 1 of each year.This section comes from the city of Chicago workers strike. 1886年5月1日&#xff0c;芝加哥的二十一万六…

Java 设计模式(结构型)

文章目录 代理模式门面模式外观模式桥接模式适配器模式享元模式装饰器模式组合模式 代理模式 代理模式是一种结构型设计模式&#xff0c;允许在访问对象时提供一种代理以控制对该对象的访问。代理模式通常在客户端和实际对象之间引入了一个代理对象&#xff0c;客户端通过代理…

opencv_23_高斯模糊

void ColorInvert::gaussian_blur(Mat& image) { Mat dst; GaussianBlur(image, dst, Size(0, 0), 15); // Size(2, 2), imshow("图像模糊2", dst); }

最新CRM系统评测:发现双重功能的好用客户关系管理系统

对于绝大多数企业来说&#xff0c;拥有强大的销售能力是实现增长、获得收益的关键。在如今企业数字化的大背景下&#xff0c;我们经常会听到关于自动化的讨论&#xff0c;也有声音会说&#xff0c;企业数字化成功与否的标准之一就是自动化程度。销售自动化&#xff08;SFA&…

集成框架 -- OSS

前言 接入oss必须有这两个文档基础 使用STS临时访问凭证访问OSS_对象存储(OSS)-阿里云帮助中心 前端上传跨域 正文 sts前后端通用&#xff0c;开通图示 AliyunSTSAssumeRoleAccess 后端实现代码 public static void main(String[] args) {String regionId "cn-ha…

Emby Notifier——一个媒体通知推送服务

Emby Notifier 这是另一个项目 watchdog_for_Emby 的最新优化版本&#xff0c;取消了 nfo 文件的监视依赖&#xff0c;该版本不再需要手动设置媒体库路径&#xff0c;对通过网盘挂载生成的媒体库更加友好~ Emby Server 版本 (重要&#xff01;&#xff01;&#xff01;) 4.8.0…

【会员单位】浙江晧月水务科技有限公司

中华环保联合会理事单位 水环境治理专业委员会副主任委员单位 公司成立于2018年3月14日&#xff0c;是专业研究废水处理业务的国家高新技术企业。 公司自主研发的脱硫废水“零排放”的技术&#xff0c;不仅适应性好&#xff0c;技术先进&#xff0c;智慧化程度高&#xff0c…

Leetcode—1041. 困于环中的机器人【中等】

2024每日刷题&#xff08;121&#xff09; Leetcode—1041. 困于环中的机器人 实现代码 class Solution { public:bool isRobotBounded(string instructions) {int x 0;int y 0;int d 0;vector<vector<int>> direction{{0, 1}, {1, 0}, {0, -1}, {-1, 0}};for…

机遇与挑战并存的Agent

随着大模型技术的突飞猛进,如GPT-4、Baichuan-3等的问世,人们对 Agent AI 智能体的未来发展普遍持乐观态度。这些先进的语言模型极大地提升了智能体的语言理解和生成能力,使其在自然语言处理任务上接近甚至超越人类水平。同时,多模态大模型的崛起,让智能体具备了多种形式的感知…

C++二要素认证,游戏实名认证接口、金融实名认证

随着移动互联的发展&#xff0c;越来越多的企业在金融市场都想分一杯羹&#xff0c;而哪种理财产品才是人们放心的理财产品呢&#xff1f;我们都知道理财产品开户都需要上传身份证号核验和图像进行验证&#xff0c;以保证个人信息的真实性&#xff0c;那么这些是如何来判别身份…

网络安全主题纪录片

网络安全主题纪录片 文章目录 网络安全主题纪录片第四公民黑客帝国系列龙纹身女孩碟中谍系列虎胆龙威4匿名者终结者2&#xff1a;审判日东方快车谋杀案黑客国家公敌我是谁&#xff1a;没有绝对安全的系统黑客军团速度与激情系列十亿美元大劫案勒索软件的背后黑客的恐惧为什么网…

【LeetCode周赛】第 394 场周赛

目录 3120. 统计特殊字母的数量 I 简单3121. 统计特殊字母的数量 II 中等3122. 使矩阵满足条件的最少操作次数 中等3123. 最短路径中的边 困难 3120. 统计特殊字母的数量 I 简单 3120. 统计特殊字母的数量 I 分析&#xff1a; 模拟即可 代码&#xff1a; class Solution { …

Map的compute方法详解(Java)

1.compute方法 compute 方法是 Map 接口中的一个方法&#xff0c;用于根据指定的键和计算函数对指定键的值进行修改。 方法的签名如下&#xff1a; default V compute(K key, BiFunction<? super K, ? super V, ? extends V> remappingFunction)key&#xff1a;要操…

兰姆顿食尸鬼

弗农弗罗斯特(出生日期不详- 1891年11月13日)&#xff0c;加拿大佃农&#xff0c;杀人犯&#xff0c;被认为是超自然的存在[谁知道?被称为“兰姆顿食尸鬼”。 背景 弗农弗罗斯特在1858年之前的生活细节是未知的&#xff0c;当时他在安大略省兰姆顿县的一个苹果园工作。根据土…

Python实用记录(十六):PyQt/PySide6联动VSCode便捷操作指南

文章目录 一、安装vscode和配置pyside6环境二、安装vscode扩展三、扩展配置编辑四、编辑运行 一、安装vscode和配置pyside6环境 这一步默认已经通过了 二、安装vscode扩展 三、扩展配置编辑 四个地方需要修改&#xff1b;rcc路径、uic路径、designer.exe路径 uic.exe 用于将…

基于Docker + Locust的数据持久化性能测试系统

前几天给大家分享了如何使用Locust进行性能测试&#xff0c;但是在实际使用中会发现存在压测的结果无法保存的问题&#xff0c;比如在分布式部署情况下进行压测&#xff0c;每轮压测完成需要释放资源删除容器重新部署后&#xff0c;这段时间的压测结果就都丢失了&#xff0c;如…