1. 程式人生 > 其它 >#力扣 LeetCode860. 檸檬水找零 @FDDLC

#力扣 LeetCode860. 檸檬水找零 @FDDLC

技術標籤:演算法&資料結構

題目描述:

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

Java程式碼:

class Solution { //bills[i] 不是 5 就是 10 或是 20
    public boolean lemonadeChange(int[] bills) {
        int[] count=new int[21];
        for(int bill:bills){
            if(bill==5)count[5]++;
            else if(bill==10){
                if(count[5]==0)return false;
                count[5]--;
                count[10]++;
            }else{ //20
                if(count[10]*count[5]>0){
                    count[10]--;
                    count[5]--;
                }else if(count[5]>=3)count[5]-=3;
                else return false;
            }
        }
        return true;
    }
}

Java程式碼二:進行了優化,核心思路同上

class Solution { //bills[i] 不是 5 就是 10 或是 20
    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;
                five--;
                ten++;
            }else{ //20
                if(five*ten>0){
                    ten--;
                    five--;
                }else if(five>=3)five-=3;
                else return false;
            }
        }
        return true;
    }
}