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

news/2024/12/15 17:43:10/

题目来源:https://leetcode.cn/problems/minimum-number-of-arrows-to-burst-balloons/description/

C++题解1: 根据x_end排序,x_start小的在前,这样可以保证如果第 i 个球的x_end大于等于第 j 个球的x_start时,第 j 个球能被射中(因为第j个球的x_end更大)。

注意cmp函数,参数要用引用&,否则会超时(我猜是形参复制导致的超时)。

class Solution {
public:static bool cmp(vector<int>& a, vector<int>& b) {if(a[1] < b[1]) return true;else if(a[1] == b[1]) {if(a[0] < b[0]) return true;}return false;}int findMinArrowShots(vector<vector<int>>& points) {sort(points.begin(), points.end(), cmp);int len = points.size();int res = 1, maxind = points[0][1];for(int i = 0; i < len; i++) {if(points[i][0] > maxind) {maxind = points[i][1];res++;}}return res;}
};

C++题解2(来源代码随想录):根据x_start排序,比较每个气球与上一个气球是否相连,不相连则需要一支箭,相连则把尾巴更新为最短的x_end,避免[1,3][2,5][4,6]这样,需要两个箭,因为第一个气球与第三个气球不相连。

class Solution {
private:static bool cmp(const vector<int>& a, const vector<int>& b) {return a[0] < b[0];}
public:int findMinArrowShots(vector<vector<int>>& points) {if (points.size() == 0) return 0;sort(points.begin(), points.end(), cmp);int result = 1; // points 不为空至少需要一支箭for (int i = 1; i < points.size(); i++) {if (points[i][0] > points[i - 1][1]) {  // 气球i和气球i-1不挨着,注意这里不是>=result++; // 需要一支箭}else {  // 气球i和气球i-1挨着points[i][1] = min(points[i - 1][1], points[i][1]); // 更新重叠气球最小右边界}}return result;}
};


http://www.ppmy.cn/news/952210.html

相关文章

淘宝API接口应用场景及介绍

淘宝API&#xff08;Application Programming Interface&#xff09;是淘宝提供的一组接口&#xff0c;允许开发者通过编程方式与淘宝平台进行交互。淘宝API提供了各种功能和服务&#xff0c;包括商品详情接口&#xff0c;为商家和开发者提供了丰富的应用场景。以下是淘宝API详…

时代背景下的 ChatGPT,到底能帮助开发者做什么呢?

前言 最近脍炙人口的技术 ChatGPT&#xff0c;关注度非常高&#xff0c;网上关于它的文章也一大片&#xff0c;不过很多都是关于体验或者部署的&#xff0c;我们习惯去讨论它的技术、模型、趣味等等&#xff0c;但他能在开发者的工作中带给我们些什么东西呢&#xff1f; 我应…

微服务保护——Sentinel【实战篇】

一、限流规则&#x1f349; 1.簇点链路&#x1f95d; 簇点链路&#xff1a;就是项目内的调用链路&#xff0c;链路中被监控的每个接口就是一个资源。默认情况下sentinel会监控SpringMVC的每一个端点&#xff08;Endpoint&#xff09;&#xff0c;因此SpringMVC的每一个端点&a…

Kubernetes——CKA证书

拿到CKA证书啦&#xff0c;打算近期再准备一下备考的学习笔记以及备考经验&#xff0c;有需要的朋友可以点赞加关注&#xff0c;我会持续更新&#xff0c;您的一个赞就能给我一份整理笔记的动力&#xff01;&#x1f92d;

用CPU大法忽悠ChatGPT写前端,油猴子工具库+1

文章目录 用CPU大法忽悠ChatGPT写前端&#xff0c;油猴子工具库1源起对话1. 作为一名天才js程序员&#xff0c;开发一个油猴子脚本&#xff0c;实现所有浏览器网页的自动下滑功能&#xff0c;每一个步骤都加上中文注释2. 加一个按钮&#xff0c;只有我点击了按钮才会开始自动下…

chatGPT:odoo前端生成界面的原理、View类常用属性与方法、示例及效率

本文整理了向chatGPT老师请教有关odoo前端生成界面的原理、View类常用属性与方法、示例及效率的问题的回复。 原理 当Odoo加载一个视图时&#xff0c;它会首先读取XML文件&#xff0c;并将其转换为Python对象。这个Python对象是从View类派生的&#xff0c;并且包含了一些相关…

2023年的深度学习入门指南(3) - 前端同学如何进行chatgpt开发

2023年的深度学习入门指南(3) - 前端同学如何进行chatgpt开发 在第二篇&#xff0c;我们使用openai的python库封装&#xff0c;搞得它有点像之前学习的PyTorch一样的库。这一节我们专门给它正下名&#xff0c;前端就是字面意义上的前端。 给gpt4写前端 下面我们写一个最土的…

前端X chatGPT

前⾔ 在我们前端开发中&#xff0c;我们经常需要⾯对各种各样的挑战和问题。⽆论是接⼿⽼项⽬、新技术的源码阅 读&#xff0c;还是前后端并⾏开发后的接⼝联调等情况&#xff0c;我们都需要时刻保持警觉&#xff0c;以便快速解决问题并提⾼开 发效率。本⽂将讨论前端开发中常…