代码随想录算法训练营第23期day34 |860.柠檬水找零、406.根据身高重建队列、452. 用最少数量的箭引爆气球

目录

一、(leetcode 860)柠檬水找零

二、(leetcode 406)根据身高重建队列

三、(leetcode 452)用最少数量的箭引爆气球


一、(leetcode 860)柠檬水找零

力扣题目链接

状态:Debug后AC。

很符合直接的算法是记录5,10,20的面值个数(其实不记录20也可以),然后根据不同的面值进行讨论处理,这里需要注意的是,顾客给20有两种找零方式,如果有10块,可以10+5,如果没有10块,可以5*3。

class Solution {
public:bool lemonadeChange(vector<int>& bills) {vector<int> record(3, 0); //0,1,2 分别存储5,10,20的数量for(int n : bills){if(n == 5){record[0]++;}else if(n == 10){record[1]++;record[0]--;}else{record[2]++;if(record[1] == 0){record[0] -= 3;}else{record[1]--;record[0]--;}}//cout << record[0] << " " << record[1] << " " << record[2] << endl;if(record[0] < 0 || record[1] < 0){return false;}}return true;}
};

这里的贪心思想体现在哪里?就是当有20的面值进来时,先花费10+5的组合,没有10的话再5*3。因为5元是更加有用的面值,要尽量留着放在后面使用。

二、(leetcode 406)根据身高重建队列

力扣题目链接

状态:copy代码。

本题要注意两点,首先是两个维度先确定哪一个,自己思考的想法是先确定前面的人数,也就是第二个,但是这样排序过后会发现在考虑身高时之前确定的维度被打乱,没有起到什么作用。所以应该是先根据身高进行排序,确定身高之后,可以放心地按照前面的人数进行插入。另一点就是用代码实现这个思路的过程。首先,数组按照某一个维度进行排序的方法要掌握,其次,插入较多的算法,数据结构使用list效率比vector高,最后就是迭代器的使用。

class Solution {
public:static bool cmp(const vector<int>& a, const vector<int>& b){if(a[0] == b[0]) return a[1] < b[1];return a[0] > b[0];}vector<vector<int>> reconstructQueue(vector<vector<int>>& people) {sort(people.begin(), people.end(), cmp);list<vector<int>> que;int len = people.size();for(int i = 0; i < len; ++i){int position = people[i][1];list<vector<int>>::iterator it = que.begin();while(position--){it++;}que.insert(it, people[i]);}return vector<vector<int>>(que.begin(), que.end());}
};

三、(leetcode 452)用最少数量的箭引爆气球

力扣题目链接

状态:Debug后AC。

同样是两个维度,先确定left(从小到大排序),然后对right进行遍历判断。

class Solution {
public:static bool cmp(const vector<int>& a, const vector<int>& b){if(a[0] == b[0]) return a[1] < b[1];return a[0] < b[0];}int findMinArrowShots(vector<vector<int>>& points) {int res = 1;sort(points.begin(), points.end(), cmp);// for(auto i : points){//     cout << i[0] << ", " << i[1] << endl;// }int len = points.size();if(len == 1) return res;int i = 1;int right = points[0][1];for(int i = 1; i < len; ++i){if(points[i][0] > points[i-1][1]){res++;}else{points[i][1] = min(points[i][1], points[i-1][1]);}}return res;}
};

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

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

相关文章

C# OpenCvSharp Yolov8 Face Landmarks 人脸特征检测

效果 项目 代码 using OpenCvSharp; using OpenCvSharp.Dnn; using System; using System.Collections.Generic; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms;namespace OpenCvSharp_Yolov8_Demo {public partial class frmMain…

FL Studio21.2演示版下载

FL Studio 21.2 带有 stem 分离和 FL Cloud&#xff0c;这是一项专为 FL Studio 打造的具有里程碑意义的新服务。其他新功能包括 FL Studio Fruity Edition 的 Audio Clips&#xff08;音频剪辑&#xff09;和一个新的模拟建模合成器 Kepler。 为庆祝 FL Studio 21.2 的发布&am…

Vue实现首页导航和左侧菜单,介绍mock.js并实现登录注册间的跳转,实现左侧栏折叠效果,优化Main.vue组件,使用mock.js生成随机响应数据

目录 1. mockjs 1.1 mockjs介绍 1.2 mockjs使用步骤 1.2.1 安装mockjs依赖 1.2.2 在项目中引入mockjs 1.2.3 创建目录和文件 1.2.4 为每个组件准备模拟数据 1.2.5 测试 1.2.6 前端调试 1.2.7 mockjs生成随机响应数据 1.2.8 根据不同响应&#xff0c;给出不同提示 2…

二进制搭建 Kubernetes+部署网络组件+部署CornDNS+负载均衡部署+部署Dashboard

二进制搭建 Kubernetes v1.20 k8s集群master01&#xff1a;20.0.0.50 kube-apiserver kube-controller-manager kube-scheduler etcd k8s集群master02&#xff1a;20.0.0.100k8s集群node01&#xff1a;20.0.0.110 kubelet kube-proxy docker etcd k8s集群node02&#xff1a;20.…

如何通过adb控制安卓手机wifi

一、准备工作 1、先用USB数据线 将手机和电脑连接在一起 1&#xff09; 数据线连接手机和电脑&#xff0c;选择“传输文件”的连接方式&#xff1b; 2&#xff09; 在手机上&#xff0c;打开“开发者选项”、“USB调试”&#xff1b; 2、在电脑上安装adb工具&#xff0c;参考…

MySQL(2):环境搭建

1.软件下载 软装去官网下载&#xff08;社区版&#xff09;&#xff1a;https://downloads.mysql.com/archives/installer/&#xff08;历史版本可选&#xff09; 选择下面的&#xff0c;一步到位 2.软件安装 双击 .msi 文件 选完 Custom 自定义后点 next 按 1&#xff0c…

软通动力:打造AI第二增长曲线,图谋新发展

【科技明说 &#xff5c; 重磅专题】 软通动力对于AI的想法还是比较久了&#xff0c;之前在与业内朋友聊到软通动力之时&#xff0c;曾提到软通动力的根基还是在于其多年来的软件服务能力&#xff0c;目前借助AI技术创新的机遇将软件服务能力进一步放大&#xff0c;扩展到更多行…

人工智能基础_机器学习006_有监督机器学习_正规方程的公式推导_最小二乘法_凸函数的判定---人工智能工作笔记0046

我们来看一下公式的推导这部分比较难一些, 首先要记住公式,这个公式,不用自己理解,知道怎么用就行, 比如这个(mA)T 这个转置的关系要知道 然后我们看这个符号就是求X的导数,X导数的转置除以X的导数,就得到单位矩阵, 可以看到下面也是,各种X的导数,然后计算,得到对应的矩阵结…

高阶数据结构学习 —— 图(2)

文章目录 1、BFS1、DFS 1、BFS 广度优先。确定从哪个点开始&#xff0c;然后用队列来完成遍历。拿出一个点就把和这个点相连的其它点放进去&#xff0c;但是这样前面放进过队列的也有可能被再次放入&#xff0c;所以需要做好标记。一个队列&#xff0c;一个标记容器。在邻接矩…

蓝桥杯每日一题2023.10.25

乘积尾零 - 蓝桥云课 (lanqiao.cn) 题目描述 题目分析 由于需要相乘的数很多&#xff0c;所以我们不能直接进行暴力模拟&#xff0c;我们知道10 2 * 5&#xff0c; 所以我们只需要找出这个数2和5的个数&#xff0c;其中2和5个数小的那个则为末尾0出现的个数 #include<bi…

搭建微信小程序环境及项目结构介绍

一、注册 访问微信公众平台&#xff0c;将鼠标的光标置于账号分类中的小程序上&#xff0c; 点击‘查看详情’ 点击“前往注册” 下方也可以点击注册&#xff1a; 小程序注册页面&#xff1a; 步骤a:进入小程序注册页&#xff0c;根据指引填写信息和提交相应的资料&#x…

黔院长 | 一文了解五脏的脏象!

你知道五脏的脏象是怎样的吗&#xff1f;下面一起来了解一下吧。 首先是我们的心&#xff0c;心主血脉&#xff0c;在体合脉&#xff0c;开窍于舌&#xff0c;其华在面。是说心脏是我们生命的根本&#xff0c;心气推动全身的血脉得以正常运行&#xff0c;心发生的生理和病理可…

应用案例|基于三维机器视觉的曲轴自动化上下料应用方案

Part.1 项目背景 此案例服务对象为国内某知名大型汽车零部件制造工厂&#xff0c;该工厂有针对曲轴工件的自动化上下料需求。由于之前来料码放不规范&#xff0c;工件无序散乱摆放&#xff0c;上料节拍要求高&#xff0c;该工厂上下料效率极低。 Part.2 传统曲轴上下料存在的缺…

【python图像处理】模糊图像

模糊前 模糊后 模糊 import os from PIL import Image, ImageFilterfacesPath face # 图片文件夹路径 faces os.listdir(facesPath) for face in faces:facePath os.path.join(facesPath, face)image Image.open(facePath)blurred_image image.filter(ImageFilter.BLU…

GoLong的学习之路(十三)语法之标准库 log(日志包)的使用

上回书说到&#xff0c;flag的问题。这回说到日志。无论是软件开发的调试阶段还是软件上线之后的运行阶段&#xff0c;日志一直都是非常重要的一个环节&#xff0c;我们也应该养成在程序中记录日志的好习惯。 文章目录 log配置logger配置日志前缀配置日志输出位置自定义logger …

AI:39-基于深度学习的车牌识别检测

🚀 本文选自专栏:AI领域专栏 从基础到实践,深入了解算法、案例和最新趋势。无论你是初学者还是经验丰富的数据科学家,通过案例和项目实践,掌握核心概念和实用技能。每篇案例都包含代码实例,详细讲解供大家学习。 📌📌📌本专栏包含以下学习方向: 机器学习、深度学…

ES6 模块化编程 详解

目录 一、基本介绍 二、基本原理示意图 三、传统CommonJS实现模块化编程 1.介绍 : 2.实例 : 四、ES6新特性实现模块化编程 1.介绍 : 2.实例 : 一、基本介绍 (1) ES6新特性——模块化编程&#xff0c;用于解决传统非模块化开发中出现的"命名冲突", "文件…

Kubernetes(k8s)高可用搭建

目录 一、系统基础设置1.1、关闭防火墙1.2、关闭selinux1.3、关闭swap1.4、设置hostname1.5、将桥接的IPv4流量传递到iptables的链1.6、 时间同步1.7 配置开启 ipvs 的前提条件1.8、 安装iproute-tc和dig工具 二、所有master节点部署keepalived2.1 安装相关包和keepalived2.2配…

英语兔语法笔记(1)动词分类+动词时态

B站英语兔的语法课&#xff0c;强推&#xff01;和学校里面的不同&#xff0c;通俗易懂&#xff0c;看过之后真的醍醐灌顶~ 英语兔语法网课https://www.bilibili.com/video/BV1XY411J7aG?p1&vd_source1d1be06bfa4daa398bc518a66de92cf8 一.动词分类 大致看一下就好&…

高阶数据结构图下篇

目录&#xff1a; 图的基本概念二深度优先遍历&#xff08;DFS&#xff09;广度优先遍历&#xff08;BFS&#xff09; kruskal&#xff08;克鲁斯卡尔算法&#xff09;Prim&#xff08;普里姆算法&#xff09;Dijkstra(迪杰斯特拉算法)Bellman-ford(贝尔曼-福特算法) flyod-war…