0860. Lemonade Change

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;
    }
}

致谢 #