LeetCode860柠檬水找零
感觉不像贪心,而是像模拟。
class Solution {
public boolean lemonadeChange(int[] bills) {
int count_5 = 0;
int count_10 = 0;
int count_20 = 0;
for(int i=0;i<bills.length;i++){
if(bills[i] == 5){
count_5++;
}
else if(bills[i] == 10){
if(count_5<=0){ // 如果5元个数小于等于0,就找不开
return false;
}
count_10++;
count_5--;
}
else if(bills[i] == 20){
if(count_5>0 && count_10>0){ // 对于20的情况,如果5 和10 个数都大于0的时候先把10和5个减去1,而不是减去三个5,。因为5 更宝贵
count_20++;
count_10--;
count_5--;
}
else if(count_10 == 0 && count_5>=3){ // 如果10没了,那就看5是不是大于3,大与3的时候才可以减3.
count_20++;
count_5=count_5 -3;
}
else{
return false;
}
}
}
return true;
}
}