leetcode第860题柠檬水找零
贪心:
- 列举情况,当nums[i] == 5 的时候,我只需要收钞票,不需要找零
- 当nums【i】== 10的时候,收到一张10元的,找零一张五元的。
- 当收到20元的时候,收到20的一张,找零15元 可能是一张10元,两张五元,也可能是三张五元。找零的时候优先处理10元的,贪心的思路就体现在这里。
class Solution {
public boolean lemonadeChange(int[] bills) {
//试着坐一坐吧!见多识广
int cas_5 = 0;
int cas_10 = 0;
for(int i = 0;i < bills.length;i++){
if(bills[i] == 5){
cas_5++;
}else if (bills[i] == 10){
cas_10++;
cas_5--;
if(cas_5 < 0){
return false;
}
}else if(bills[i] == 20){
if(cas_10 > 0 && cas_5 > 0){
cas_10--;
cas_5--;
}else {
cas_5 -= 3;
}
if(cas_5 < 0 || cas_10 < 0){
return false;
}
}
}
return cas_10 >= 0 && cas_5 >= 0;
}
}