class Solution {
public boolean lemonadeChange(int[] bills) {
// 五元张数
int five = 0;
// 十元张数
int ten = 0;
for(int i=0; i<bills.length; i++){
// 如果收到5元的,5元张数增加,不用找钱
if(bills[i] == 5){
five++;
// 如果收到10元的,10元张数增加,需要找一张5元的
}else if(bills[i] == 10){
five--;
ten++;
// 如果收到20元的,如果手里有10元的,先找10元的,再找一张5元的;如果没有10元的,就找3张5元的
}else if(bills[i] == 20){
if(ten > 0){
ten--;
five--;
}else{
five -= 3;
}
}
// 如果5元、10元的张数出现负数,代表不能找钱
if(five < 0 || ten < 0){
return false;
}
}
return true;
}
}
运行结果: