题目链接
贪心算法:对其找到局部最优。对于五块,我能不使用就不使用。因为五块是万能的。
局部最优解可以解决并且不影响我的最终的结果,那么就可以使用贪心算法。
class Solution {
public boolean lemonadeChange(int[] bills) {
int n = bills.length;
int a5 = 0,a10 = 0, a20 = 0; // 记录纸张
for(int i = 0; i < n; i++) {
if(bills[i] == 5) {
a5++;
} else if(bills[i] == 10) {
if(a5 > 0) {
a5--;
a10++;
} else {
return false;
}
} else if(bills[i] == 20) {
if(a5 > 0 && a10 > 0) {
a5--;
a10--;
a20++;
} else if(a5 >=3){
a5 = a5 - 3;
a20++;
} else {
return false;
}
}
}
return true;
}
}