LeetCode[860] 柠檬水找零 (贪心)
PS: 本题目摘自 LeetCode 860 原题 柠檬水找零,一道贪心算法问题
题目描述
在柠檬水摊上,每一杯柠檬水的售价为 5 美元。
顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。
每位顾客只买一杯柠檬水,然后向你付 5 美元、10 美元或 20 美元。
你必须给每个顾客正确找零,也就是说净交易是每位顾客向你支付 5 美元。
注意,一开始你手头没有任何零钱。
如果你能给每位顾客正确找零,返回 true ,否则返回 false
示例 1:
输入:[5,5,5,10,20]
输出:true
解释:
前 3 位顾客那里,我们按顺序收取 3 张 5 美元的钞票。
第 4 位顾客那里,我们收取一张 10 美元的钞票,并返还 5 美元。
第 5 位顾客那里,我们找还一张 10 美元的钞票和一张 5 美元的钞票。
由于所有客户都得到了正确的找零,所以我们输出 true。
示例 2:
输入:[5,5,10]
输出:true
示例 3:
输入:[10,10]
输出:false
示例 4:
输入:[5,5,10,10,20]
输出:false
解释:
前 2 位顾客那里,我们按顺序收取 2 张 5 美元的钞票。
对于接下来的 2 位顾客,我们收取一张 10 美元的钞票,然后返还 5 美元。
对于最后一位顾客,我们无法退回 15 美元,因为我们现在只有两张 10 美元的钞票。
由于不是每位顾客都得到了正确的找零,所以答案是 false。
提示:
0 <= bills.length <= 10000
bills[i] 不是 5 就是 10 或是 20
题解思路
- 收到 5 美元:不用找零,留下 5 美元
- 收到 10 美元:如果有 5 美元则返还顾客 5 美元,留下 10 美元,如果没有就 false
- 收到 20 美元:如果有 15 美元则返还顾客 15 美元(15 美元优先返还 10 + 5,其次 5 + 5 + 5),留下 20 美元,如果没有就 false
- 如果 1,2,3 均没有返回 false,则结果为 true
AC代码
class Solution {public:bool lemonadeChange(vector<int>& bills) {int fivedollar = 0;int tendollar = 0;for(int bill: bills) {if(bill == 5) { fivedollar++; }else if(bill == 10 && fivedollar > 0) { fivedollar--; tendollar++; }else {if(tendollar > 0 && fivedollar > 0) { tendollar--; fivedollar--; }else if(fivedollar >= 3) { fivedollar -= 3; }else { return false; }}}return true;}
};
LeetCode[860] 柠檬水找零 (贪心)相关推荐
- Leetcode 860. 柠檬水找零(贪心) 记录反思
有的时候就应该找点简单题目提升一下自己的驱动力 有三种情况 情况一:账单是5,直接收下. 情况二:账单是10,消耗一个5,增加一个10 情况三:账单是20,优先消耗一个10和一个5,否则,消耗三个5 ...
- 150. Leetcode 860. 柠檬水找零 (贪心算法-基础题目)
有如下三种情况: •情况一:账单是5,直接收下. •情况二:账单是10,消耗一个5,增加一个10 •情况三:账单是20,优先消耗一个10和一个5,如果不够,再消耗三个 5 class Solution ...
- leetcode.860. 柠檬水找零
860. 柠檬水找零 在柠檬水摊上,每一杯柠檬水的售价为 5 美元. 顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯. 每位顾客只买一杯柠檬水,然后向你付 5 美元.10 美元或 ...
- leetcode: 860. 柠檬水找零
860. 柠檬水找零 来源:力扣(LeetCode) 链接: https://leetcode.cn/problems/lemonade-change/ 在柠檬水摊上,每一杯柠檬水的售价为 5 美元. ...
- LeetCode 860. 柠檬水找零(贪心)
1. 题目 在柠檬水摊上,每一杯柠檬水的售价为 5 美元. 顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯. 每位顾客只买一杯柠檬水,然后向你付 5 美元.10 美元或 20 美 ...
- leetcode 860. 柠檬水找零(贪心算法)
在柠檬水摊上,每一杯柠檬水的售价为 5 美元. 顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯. 每位顾客只买一杯柠檬水,然后向你付 5 美元.10 美元或 20 美元.你必须给 ...
- LeetCode#860: 柠檬水找零
题目(LeetCode#860) 在柠檬水摊上,每一杯柠檬水的售价为 5 美元. 顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯. 每位顾客只买一杯柠檬水,然后向你付 5 美元. ...
- LeetCode 860. 柠檬水找零 做题小结
题目 在柠檬水摊上,每一杯柠檬水的售价为 5 美元.顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯.每位顾客只买一杯柠檬水,然后向你付 5 美元.10 美元或 20 美元.你必须 ...
- LeetCode 860.柠檬水找零(C++)
在柠檬水摊上,每一杯柠檬水的售价为 5 美元. 顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯. 每位顾客只买一杯柠檬水,然后向你付 5 美元.10 美元或 20 美元.你必须给 ...
最新文章
- python 靶心_手把手教你使用Python实战反欺诈模型|原理+代码
- [转载zz] Python3 输入和输出之序列化与反序列化
- Git基础之(二十)——标签管理——创建标签
- 【入门经典】创建站点地图
- Android 基础(二十四) EditText
- 首次!海豚间像人类一样的交谈被水下麦克风记录
- linux 内核空间占用cpu百分比过高,linux下分析java程序占用CPU、内存过高
- Python 爬虫工程师必看,深入解读字体反爬虫
- success.ftlh与error.ftlh
- SpringMVC4 + Spring + MyBatis3 【转】
- Centos添加ip黑名单禁止某个ip访问,对登陆失败的主机进行封禁
- 取出被正则表达式匹配的值
- C++关键字 explicit
- 开源代码实现pppoe over l2tp方案
- 一刀工具箱 - URL链接编码解码工具
- 浅谈数据监控数据分析
- python- selenium-快眼看书-林深终有路
- 数据正常运行之后,突然遇见:CiteSpace will re-run the process and keep non-empty intervals only.问题
- HTML5在线电影网站设计 黑色的影视传媒公司网站(6页) HTML+CSS+JavaScript
- 【微信小程序】小程序实现文件的上传及预览,以PDF文件为例。
热门文章
- erase函数的使用(简便易懂)(有图)
- VS2017制作POV-LED取模软件 可对图片取模
- 斯坦福ChatGPT: Prompting, Instruction Finetuning, and RLHF
- 数据技术专家能力模型
- 刷脸支付营销广告一站式便捷的应用
- 当AI与音乐相遇,讯飞音乐用技术引领行业变革
- 像apro一样轻松地将复杂的Java对象与json相互转换
- 基于JAVA售楼系统计算机毕业设计源码+数据库+lw文档+系统+部署
- windows7微软官方_Microsoft Windows 7 | 第2部分
- 盖茨VS.乔布斯:左脑和右脑模式的PK(转)