贪心算法-----柠檬水找零

今日题目:leetcode860

题目链接:点击跳转题目

分析:

顾客只会给三种面值:5、10、20,先分类讨论

  • 当收到5美元时:不用找零,面值5张数+1
  • 当收到10美元时:找零5美元,面值5张数-1、面值10张数+1
  • 当收到20美元时:找零15美元,两种情况
    • 一张10美元 、 一张5美元
    • 三张5美元

对于收到20美元时,该以什么为评判标准来选择用哪一种找零方式呢?

纵观三种情况,收到10、20美元时都会用到5美元,而10美元只有收到20美元时才可能使用;

贪心思路:为了能尽可能多的正确找零,所以当收到20美元时,尽量以10+5的方式找零,除非没有10没有再不得以用三张5美元,因为5美元的找零作用很大!

代码:

class Solution {
public:bool lemonadeChange(vector<int>& bills) {int five_nums = 0;int ten_nums = 0;for(auto & x : bills){if(x == 5) {five_nums++;continue;}if(x == 10) {ten_nums++;if(five_nums > 0) five_nums--;else return false;}if(x == 20){if(five_nums >0 && ten_nums > 0){five_nums--;ten_nums--;}else if(ten_nums ==0 && five_nums >= 3){five_nums -= 3;}else return false;}}return true;}
};

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

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

相关文章

cufftPlanMany参数说明

背景 最近在看cufft这个库&#xff0c;传统的cufftPlan3d()这种plan接口逐渐被nvidia舍弃了&#xff0c;说是要用最新的cufftPlanMany&#xff0c;这个函数呢又依赖一个什么Advanced Data Layout(地址)&#xff0c;最终把这个api搞得乌烟瘴气很难理解&#xff0c;为了理解自己…

Linux学习之禁用防火墙

查看防火墙状态 systemctl status firewalld.service 第一行前面的圆圈是有颜色的就是开启状态 黑色的就是关闭状态 关闭防火墙 systemctl stop firewalld.service 输入密码认证 再次查看防火墙状态 systemctl status firewalld.service 第一行前面的圆圈变成黑色说明关闭…

上网行为监控软件有哪些(上网审计软件)【收藏】

上网行为监控软件&#xff08;也被称为上网审计软件&#xff09;正逐渐成为企业信息安全管理的必备工具。 没错&#xff01; 这些软件通过对员工的上网行为进行全面、细致的监控和审计&#xff0c;帮助企业提升工作效率、保护数据安全&#xff0c;并规范员工的网络使用行为。 …

射频无源器件之耦合器

一. 耦合器的作用 在射频电路中,射频耦合器将一路微波功率按比例分成几路,用于检测或监测信号,如功率测量和波检测,还可改变信号的幅度、相位等特性,以满足不同的通信需求。根据输入与耦合端的功率差,常被分为5dB、6dB、10dB等耦合器。射频耦合器的类型主要包括定向耦合…

N皇后问题-第12届蓝桥杯省赛Python真题精选

[导读]&#xff1a;超平老师的Scratch蓝桥杯真题解读系列在推出之后&#xff0c;受到了广大老师和家长的好评&#xff0c;非常感谢各位的认可和厚爱。作为回馈&#xff0c;超平老师计划推出《Python蓝桥杯真题解析100讲》&#xff0c;这是解读系列的第59讲。 N皇后问题&#x…

C++基础之循环控制与嵌套

循环控制包含两个方面的内容&#xff0c;一方面是控制循环变量的变化方式&#xff0c;一方面是控制循环的跳转。 一、控制循环的变量 for循环的循环控制变量的变化方式有两种&#xff0c;一种是递增&#xff0c;一种是递减。 for循环的一般形式如下。 for(赋值表达式1;关系表达…

微信云小程序快速上手云数据库+云函数+云存储的操作

&#x1f680; 作者 &#xff1a;“二当家-小D” &#x1f680; 博主简介&#xff1a;⭐前荔枝FM架构师、阿里资深工程师||曾任职于阿里巴巴担任多个项目负责人&#xff0c;8年开发架构经验&#xff0c;精通java,擅长分布式高并发架构,自动化压力测试&#xff0c;微服务容器化k…

Vinted店铺总被封号?如何有效养号?

Vinted是一家欧洲知名的二手时尚交易平台&#xff0c;致力于连接买家和卖家&#xff0c;让他们能够在平台上买卖二手时尚商品。用户可以在Vinted上销售和购买服装、鞋子、配饰等各种时尚物品&#xff0c;无论是品牌商品还是非品牌商品&#xff0c;都可以在平台上找到。Vinted的…

Redis(主从复制搭建)

文章目录 1.主从复制示意图2.搭建一主多从1.搭建规划三台机器&#xff08;一主二从&#xff09;2.将两台从Redis服务都按照同样的方式配置&#xff08;可以理解为Redis初始化&#xff09;1.安装Redis1.yum安装gcc2.查看gcc版本3.将redis6.2.6上传到/opt目录下4.进入/opt目录下然…

QLabel 如何同时显示图片和文字?

效果: align="top"表示图片和文字底部对齐。 img src=":/img/qrc_img.png"表示此图片被添加到qrc的相对路径。 完整: QString content =QString("<html><head/><body><p><img src=\":/img/qrc_img.png\"…

基于Springboot的校园招聘系统(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的校园招聘系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&…

深度学习笔记_10YOLOv8系列自定义数据集实验

1、mydaya.yaml 配置方法 # 这里分别指向你训练、验证、测试的文件地址&#xff0c;只需要指向图片的文件夹即可。但是要注意图片和labels名称要对应 # 训练集、测试集、验证机文件路径&#xff0c;可以是分类好的TXT文件&#xff0c;也可以直接是图片文件夹路径 train: # t…