题目:
在柠檬水摊上,每一杯柠檬水的售价为
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。
分析:
1、需清楚找零钱不仅要考虑面值够不够,还要考虑钞票的面额,即2张10美元钞票不能给20美元钞票找零。
因此,我们需要针对收到的钱来进行分情况处理判断:
①收到5美元钞票,则直接收钱即可,不用做判断;
②收到10美元钞票,则需判断是否有5美元钞票进行找零;
③收到20美元钞票,则需判断是否有 “至少一张5美元钞票以及一张10美元钞票” 或者 “3张5