860. 柠檬水找零

贪心

class Solution {
    public boolean lemonadeChange(int[] bills) {

        int five = 0;
        int ten = 0;

        for (int i = 0; i < bills.length; i++) {

            if (bills[i] == 5){
                five++;
            }
            else if (bills[i] == 10){

                if (five > 0){

                    five--;
                    ten++;
                }
                else {
                    return false;
                }
            }
            else {

                /**
                 * 收到20元时,可以找一张10元和一张5元,或者3张5元
                 */
                if (five > 0 && ten > 0){

                    five--;
                    ten--;
                }
                else if (five >= 3){

                    five -= 3;
                }
                else {
                    return false;
                }
            }
        }

        return true;
    }
}

/**
 * 时间复杂度 O(n)
 * 空间复杂度 O(1)
 */

https://leetcode-cn.com/problems/lemonade-change/

posted @ 2022-02-26 13:12  振袖秋枫问红叶  阅读(36)  评论(0)    收藏  举报