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

简介: 452. 用最少数量的箭引爆气球

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


题目


在二维空间中有许多球形的气球。对于每个气球,提供的输入是水平方向上,气球直径的开始和结束坐标。由于它是水平的,所以纵坐标并不重要,因此只要知道开始和结束的横坐标就足够了。开始坐标总是小于结束坐标。


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


示例 2:


输入:points = [[1,2],[3,4],[5,6],[7,8]]
输出:4


解题思路


首先肯定是要射出一支箭的,并且这第一支箭需要射在左右范围的最小右边界中,因为这样才能保证射中更多的气球,找出最小右边界,进行循环遍历比较,当第一次有左边界大于这个最小右边界时候,就射不到这个超出的了,此时得射出第二支箭,而第二支箭需要找此时的右边界 射出 …以此类推


注意:这次的排序是按第二的数的大小顺序排(我就在这被坑了),因为算边界是按照右边界算。



代码


class Solution {
public:
    int findMinArrowShots(vector<vector<int>>& points) {
        if (points.empty())
            return 0;
        int size=points.size();
        sort(points.begin(),points.end(),[](vector<int>&a,vector<int>&b){
            return a[1]<b[1];
        });
        // 一开始得有一支箭
        int count=1;
        int prev=points[0][1];
        for(int i=1;i<size;i++)
        {
            if(prev<points[i][0])
            {
                prev=points[i][1];
                count++;    
            }
        }
        return count;
    }
};
相关文章
|
数据可视化 数据挖掘
使用R语言进行多维缩放分析
【4月更文挑战第27天】本文介绍了R语言中的多维缩放分析(MDS)技术,用于高维数据的可视化。MDS通过映射数据点到低维空间保持距离或相似性,帮助理解数据结构。R中的`cmdscale`和`isoMDS`函数可用于构建MDS模型,而`dist`计算距离矩阵。通过实例展示了如何分析消费者对品牌评价,`stressplot`和`procrustes`函数则用于模型解释和验证。R还支持经典MDS、度量MDS和非度量MDS等高级主题,为数据探索提供强大工具。
242 0
|
搜索推荐 Java 应用服务中间件
【Maven】IDEA部署配置Maven项目教程,IDEA配置Tomcat(2019.3.3)(2023.1.3)
当涉及到软件开发和项目管理时,使用一个可靠的构建工具是非常重要的。Maven是一个广泛使用的构建工具,它为Java项目提供了一种简化的构建过程和依赖管理。 在本文中,我们将探讨如何部署Maven并开始使用它来构建您的项目。我们将介绍所需的步骤,并向您提供一些有用的提示和建议。
【Maven】IDEA部署配置Maven项目教程,IDEA配置Tomcat(2019.3.3)(2023.1.3)
|
10月前
|
搜索推荐 数据可视化 视频直播
精准与个性化:数字营销的新篇章
在数字化时代,数字营销已成为企业提升品牌、拓展市场和促进销售的关键手段。2021年,中国数字营销市场规模达1.4万亿元,增长17.9%,显示其巨大潜力。市场多元化,包括搜索引擎、信息流、视频和社交广告等渠道,各具特色。同时,面临消费者注意力分散、隐私保护等挑战,企业需通过精准营销、内容创意和多渠道整合来突出产品优势,实现销售突破。板栗看板作为专业工具,提供数据整合、分析和可视化服务,助力企业优化营销策略。
|
JavaScript 算法 开发工具
Github 2024-07-22 开源项目周报Top15
根据Github Trendings的统计,本周(2024年7月22日统计)共有15个项目上榜。按开发语言分类,上榜项目数量如下:Python项目最多,共7个;TypeScript项目4个;Rust和非开发语言项目各2个;Jupyter Notebook、C#、JavaScript和C++项目各1个。其中,《Hello 算法》是一本开源的数据结构与算法教程,采用动画图解和可运行代码示例,适合初学者。Prisma则为Node.js和TypeScript提供下一代ORM解决方案。其他项目涵盖文本编辑器、富文本编辑器、AI编码助手等多种应用。
255 1
|
前端开发 关系型数据库 MySQL
使用 gin-api-mono 创建简单的 TODO 服务
使用 gin-api-mono 创建简单的 TODO 服务
|
机器学习/深度学习 算法 计算机视觉
基于yolov2深度学习网络的螺丝螺母识别算法matlab仿真
以下是内容的摘要: 该文介绍了使用YOLOv2深度学习模型进行螺丝螺母识别的算法,展示了在matlab2022a环境下运行的6张检测效果图。YOLOv2基于Darknet-19预训练网络,结合多任务损失函数和非极大值抑制技术,有效检测目标。为了适应任务,进行了数据集准备、模型微调、锚框选取等步骤。核心程序加载预训练模型,遍历图像并展示检测结果,通过调整阈值绘制检测框。
|
存储 Java
Java 中的 TreeMap 是用哪种树来实现的?
【8月更文挑战第22天】
144 0
|
搜索推荐 安全 Linux
Visual Studio Code 提高效率的快捷方式(下)
Visual Studio Code 是目前最流行、最常用的代码编辑器之一,它是开源的并且可以免费使用。它还提供对多种语言和框架的支持。 ​ 注意,这些 Visual Studio Code 快捷方式取自于 VS Code 官方文档。如果某些快捷方式不起作用,可能是由于编辑器或文件格式中的快捷方式发生了变化,或者安装的扩展影响了该快捷方式。
1160 0
|
机器学习/深度学习 Python
BUUCTF rsarsa 1
BUUCTF rsarsa 1
365 0
|
JavaScript 前端开发 Java
带你读《现代Javascript高级教程》——深入理解JavaScript中的WeakMap和WeakSet(1)
带你读《现代Javascript高级教程》——深入理解JavaScript中的WeakMap和WeakSet
145 0