0860. Lemonade Change #
题目 #
- 在柠檬水摊上,每一杯柠檬水的售价为
5
美元。顾客排队购买你的产品,一次购买一杯。 - 每位顾客支付
5
美元、10
美元或20
美元。必须为每名顾客正确找零,即净交易额为每名顾客支付5
美元。 - 一开始手头没有任何零钱。
- 给定整数数组
bills
,其中bills[i]
是第i
位顾客付的账。 - 如果能给每位顾客正确找零,返回
true
,否则返回false
。
思路 #
贪心 #
代码 #
贪心 #
class Solution {
public boolean lemonadeChange(int[] bills) {
int five = 0, ten = 0;
for (int bill: bills) {
if (bill == 5) five++;
else if (bill == 10) {
if (--five < 0) return false;
ten++;
}
else {
if (ten > 0) { ten--; if (--five < 0) return false; }
else { five -= 3; if (five < 0) return false; }
}
}
return true;
}
}