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

LeetCode 860.柠檬水找零

题目链接:860.柠檬水找零

踩坑:以为不需要考虑具体怎么找钱,一直在从整体上想解决方案。

思路:当客户支付5元我们只需要收下,当客户支付10元我们只能找零5元,当客户支付20元我们优先找零一个10元一个5元,如果不行也只能支付三个5元。可以看到所有的模式相对比较固定,所以可以直接模拟。

代码:

class Solution {
public:bool lemonadeChange(vector<int>& bills) {int five = 0;int ten = 0;for(int i = 0; i < bills.size(); i++){if(bills[i] == 5) five++;else if(bills[i] == 10){five--;if(five < 0) return false;ten++;}else if(bills[i] == 20){if(ten > 0 && five > 0){ten--;five--;}else if(five > 2) five = five - 3;else return false;}}return true;}
};

LeetCode 406.根据身高重建队列

题目链接:406.根据身高重建队列

踩坑:看到了类似分发糖果那题不要两边同时考虑的提示,但是没有完全理解“两边”的含义。

思路:加深了对于有多个排序依据的题目的理解。在分发糖果那题中,分发的依据分别是左边的孩子得分和右边孩子的得分。在本题中,排序的依据分别为身高和希望前面有多少人没自己低。因此,所谓的不要不要两边同时考虑的意思其实是先确定一个条件,再确定另一个。所以,所有人应先根据身高从高到低排序(因为第二个条件在意的是前面有多少人没自己低),如果身高一样则根据第二个条件从低到高排(这样更符合题意)。这样会得到一个按身高从高到低的排序,此时根据第二个条件将后面的人插到符合的位置。因为前面的人都比后面的人高,所以后面的人插到前面的队伍里并不会影响前面的人的第二个条件。

代码:

class Solution {
public:static bool cmp(vector<int> a, 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) {vector<vector<int>> result;sort(people.begin(), people.end(), cmp);for(int i = 0; i < people.size(); i++){result.insert(people[i][1] + result.begin(), people[i]);}return result;}
};

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

题目链接:452.用最少数量的箭引爆气球

踩坑:想到要根据x从小到大排序了,但是陷入了射箭策略的陷阱,比如[1,10],[1,2],[5,8],[5,6]这种情况应该先射爆两个还是三个,以为有更节省的策略但其实都一样。

思路:根据x从小到大排序,判断相交后更新相交区间。

代码:

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

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

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

相关文章

adb之ps命令用法

目录 前言一、命令参数二、输出结果含义 前言 在adb shell终端&#xff0c;输入 ps&#xff0c;可查看手机当前所有的进程状态&#xff0c;其中ps的英文全称是Process Status。 ps命令对于分析系统异常情况时都是必备的技能&#xff0c;需要通过这个简单命令来查看系统真实的状…

12.IO相关概念

NIO 非阻塞IO BIO 阻塞IO stream vs channel 1.stream不会自动缓冲数据;channel会利用系统提供的发送缓冲区,接受缓冲区,更为底层。 2.stream仅支持阻塞API;channel同时支持阻塞、非阻塞API,网络channel可配合selector实现多路复用。 3.二者均为全双工,即读写可以同…

Golang 依赖注入库Wire应用案例

文章目录 简介Github指南安装案例wire.NewSetwire.Buildwire.Bindwire.Structwire.Valuewire.InterfaceValue 简介 Go语言的依赖注入库Wire是由Google提供的一个代码生成工具&#xff0c;用于简化和自动化依赖注入过程。Wire主要通过生成代码来处理依赖关系&#xff0c;而不是…

上网行为管理产品有哪些?好用的四款上网行为管理产品

上网行为管理产品是现代企业网络安全架构中的重要组成部分&#xff0c;它们旨在帮助企业有效监控、管理和控制员工的网络使用行为&#xff0c;确保网络资源的合理利用&#xff0c;保障信息安全&#xff0c;提升工作效率。 以安企神为例&#xff0c;我们将详细介绍它的主要功能…

【内存管理之C语言数组】

1.栈空间上的C数组 糟糕的可用性&#xff0c;但是你将在遗留代码中见到它们 相同类型的对象的内存块 大小必须是常量表达式 第一个元素索引为0 2.指针和C数组 更奇怪的是&#xff1a;数组标识符退化为指向第一个元素的指针 3.访问数组 4.堆空间上的C数组 相同类型的对象的内…

SSM情侣购物系统-计算机毕业设计源码02387

目 录 摘要 1 绪论 1.1 开发背景与意义 1.2开发意义 1.3Vue.js 主要功能 1.3论文结构与章节安排 2 情侣购物系统系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1 数据流程 3.3.2 业务流程 2.3 系统功能分析 2.3.1 功能性分析 2.3.2 非功能性分析 2.4 系统用例分…

【定义通讯数据类型】LCM搭建系统通讯

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录 系列文章目录前言LCM介绍前言 认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长! 推荐开发经验及方法博客专栏: https://blog.csdn.net/…

Qwen2的各模型性能、占用显存和推理速度比较(摘自官方文档)

Qwen2的各模型性能、占用显存和推理速度比较&#xff08;摘自官方文档&#xff09; 性能 推理速度&#xff08;从大到小&#xff09; 72B 57B-A14B 7B 1.5B 0.5B

5、闭环检测

闭环检测&#xff08;Loop Closure Detection&#xff09; 闭环检测&#xff08;Loop Closure Detection&#xff09;是SLAM&#xff08;同步定位与地图构建&#xff09;系统中的一个关键步骤。它的主要目的是检测出机器人&#xff08;或相机&#xff09;是否再次访问了先前已…

NLP - word2vec详解

Word2Vec是一种用于将词汇映射到高维向量空间的自然语言处理技术。由Google在2013年提出&#xff0c;它利用浅层神经网络模型来学习词汇的分布式表示。Word2Vec有两种主要模型&#xff1a;CBOW&#xff08;Continuous Bag of Words&#xff09;和Skip-gram。 1. 模型介绍 Con…

【MySQL】数据库介绍|数据库分类|MySQL的基本结构|MySQL初步认识|SQL分类

目录 数据库介绍 什么是数据库 数据库分类 1.关系型数据库&#xff08;RDBMS&#xff09;&#xff1a; 2.非关系型数据库&#xff1a; MySQL要学啥 MySQL初步认识 SQL分类 &#x1f4a1;推荐 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风…

59.WEB渗透测试-信息收集- 端口、目录扫描、源码泄露(7)

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 内容参考于&#xff1a; 易锦网校会员专享课 上一个内容&#xff1a;58.WEB渗透测试-信息收集- 端口、目录扫描、源码泄露&#xff08;6&#xff09; 关于御剑…

QStateMachine 笔记

QStateMachine 是 Qt 框架中用于实现状态机的类。状态机是一种模型&#xff0c;它由一系列状态组成&#xff0c;每个状态对应于系统的一个特定行为模式。状态机可以根据外部事件或内部条件在不同的状态之间转换。 基本概念&#xff1a; 状态&#xff08;State&#xff09;‌&…

改进rust代码的35种具体方法-类型(二十三)-避免通配符导入

上一篇文章-改进rust代码的35种具体方法-类型(二十二)-最小化可见度 Rust的use语句从另一个板条箱或模块中提取命名项目&#xff0c;并使该名称无需条件即可在本地模块的代码中使用。表单的通配符导入&#xff08;或glob导入&#xff09;use somecrate::module::*表示&#xff…

【TB作品】STM32F102C8T6单片机,PWM发生器

硬件&#xff1a; STM32F102C8T6核心板&#xff0c;按键&#xff0c;0.96 OLED显示屏。 软件&#xff1a; 1、硬件启动触发单片机输出PWM&#xff0c;未触发之前PWM输出为低电平。 2、按键修改PWM的变化模式、变化时间长度、占空比上下限。 3、输出的PWM是固定的10kHZ的。 4、变…

【万方数据库爬虫简单开发(自用)】

万方数据库爬虫简单开发&#xff08;自用&#xff09;&#xff08;一&#xff09; 使用Python爬虫实现万方数据库论文的搜索并获取信息1.获取url2.输入关键词3.使用BeautifulSoup解析4.获取文章标题信息 使用Python爬虫实现万方数据库论文的搜索并获取信息 后续会逐步探索更新…

洗地机哪款好?洗地机十大名牌排行榜

随着科技的发展&#xff0c;各种家居清洁工具层出不穷&#xff0c;为我们的生活带来了诸多便利。在众多清洁工具中&#xff0c;洗地机的清洁效果更受大家喜爱&#xff0c;它能够完美解决了扫地机无法做到的干湿垃圾“一遍清洁”效果&#xff0c;而且几乎能解决日常生活中所有的…

k8s 小技巧: 查看 Pod 上运行的容器

目录 1. 示例 Pod 的定义文件2. kubectl describe pod&#xff08;推荐&#xff09;3. kubectl get pod3.1 json 格式3.2 yaml 格式 4. 其他操作 1. 示例 Pod 的定义文件 # 文章中所用 pod 的 yaml 定义文件&#xff0c; multi-container.yaml apiVersion: v1 kind: Pod metad…

Vector的底层结构剖析

vector的介绍&#xff1a; 1.Vector实现了List接口的集合。 2.Vector的底层也是一个数组,protected Object[] elementData; 3.Vector 是线程同步的&#xff0c;即线程安全&#xff0c;Vector类的操作方法带有Synchronized. 4.在开发中&#xff0c;需要线程同步时&#xff0…

flutter EventBus

#配置文件中 先 引入 event_bus: ^2.0.0 1.封装一个类 便于直接调用 import package:event_bus/event_bus.dart; class EvenBlueUtil{static EventBus eventBus EventBus();static EventBus eventBusUpdate EventBus();}class UserLoggedInEvent {var user;UserLoggedInEve…