2241 leetcode ATM机问题

2241 leetcode ATM机问题,第1张

题目描述:




题解(java):
注意:存储钱数量的数组需要long类型,因为这里0 <= banknotesCount[i] <= 109,且总共 最多有 5000 次 withdraw 和 deposit 的调用,会导致cnt中部分值超过整型范围

class ATM {
    int money[];
    long count[];
    public ATM() {
    money=new int[]{20,50,100,200,500};
    count=new long[]{0,0,0,0,0};
    }
    
    public void deposit(int[] banknotesCount) {
for(int i=0;i<5;i++){
    count[i]+=banknotesCount[i];
}
    }
    
    public int[] withdraw(int amount) {
        int need[]=new int[5];
        for(int i=4;i>=0;i--){
           // if(amount>=money[i]&&count[i]>0){
            int CanNum=amount/money[i];
             need[i]=CanNum>count[i]?(int)count[i]:CanNum;
            amount-=need[i]*money[i];
          //  }
        }
        if(amount==0){
            for(int i=0;i<5;i++){
                count[i]-=need[i];
            }
            return need;

        }
        else{
            int a[]={-1};
            return a;
        }
    }
}

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/758106.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-01
下一篇2022-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存