860. 柠檬水找零

一 题目:

二 思路:

就找能不能找开了,5块钱不用找,10块找一个5块,20优先用面值大的10块,其次再用5块

三 代码:

class Solution {
    public boolean lemonadeChange(int[] bills) {
        //优先卖面值最低的
        int m5=0,m10=0,m20=0;
        for (int bill : bills) {
            if (bill==5){
                //不需要找
                m5++;
            }else if (bill==10){
                m10++;
                //需要找回5块
                if (m5>0){
                    m5--;
                }else {
                    //如果不够找
                    return false;
                }
            }else {
                //20$
                //先用大再用少
                m20++;
                if (m10>0){
                    m10--;
                    //需要支付金额减10;
                    bill-=10;
                }
                //剩下的要用5块的
                if (bill>5){
                    if (m5*5>=(bill-5)){
                        m5-=(bill-5)/5;
                    }else {
                        return false;
                    }
                }else {
                    //如果5块
                    continue;
                }

            }
        }
        return true;
    }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容