class Solution {
public boolean lemonadeChange(int[] bills) {
int five = 0;
int ten = 0;
for(int i=0; i<bills.length; i++){
if(bills[i] == 5){
five++;
}
else if(bills[i] == 10){
if(five > 0){//还要判断10块能否找零
five--;
ten++;
}
else return false;
}
else if(bills[i] == 20){//20不能作为找零,所以不考虑twenty++
if(ten > 0 && five > 0){//20找零有两种情况
ten--;
five--;
}
else if(five >= 3){
five -= 3;
}
else return false;
}
}
return true;
}
}
归纳:
只用考虑10元和5元的个数,20找零可以找10+5和3*5