一 題目:
二 思路:
就找能不能找開了,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;
}
}