860. 柠檬水找零

算法记录

LeetCode 题目:

  在柠檬水摊上,每一杯柠檬水的售价为 5 美元。顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。


思路


说明

一、题目

  每位顾客只买一杯柠檬水,然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾客正确找零,也就是说净交易是每位顾客向你支付 5 美元。
  注意,一开始你手头没有任何零钱。
  给你一个整数数组 bills ,其中 bills[i] 是第 i 位顾客付的账。如果你能给每位顾客正确找零,返回 true ,否则返回 false 。

二、分析

  • 就是一个简单的逻辑问题,将所有的结果列一下。
  • 按照规则返回数据即可。
class Solution {
    public boolean lemonadeChange(int[] bills) {
        int five = 0;
        int ten = 0;
        for(int i : bills) {
            if(i == 5) five++;
            if(i == 10) 
                if(five > 0) {
                    five-- ; ten++;
                }
                else return false;
            if(i == 20)
                if(five > 0 && ten > 0) {
                    five-- ; ten--;
                }
                else if(five > 3) five -= 3;
                else return false;
        }
        return true;
    }
}

总结

能理清题目即可。

上一篇:CF1430A Number of Apartments


下一篇:通过ADO.NET来访问MySQL