题目
思路
使用贪心法,从最近的零钱开始匹配,如果不够匹配,则返回0.
代码
class Solution {
public:
bool lemonadeChange(vector<int>& bills) {
bool flag = true;
int n1, n2;
vector<int> ans(2, 0);
for(int bill : bills){
if(bill == 5) ans[0]++;
else if(bill == 10){
n1 = (bill - 5) / 5;
if(n1 > ans[0]){
return false;
}else{
ans[0] -= n1;
ans[1]++;
}
}else{
n2 = min((bill - 5) / 10, ans[1]);
n1 = (bill - n2 * 10 - 5) / 5;
if(n1 > ans[0]){
return false;
}else{
ans[0] -= n1;
ans[1] -= n2;
}
}
}
return true;
}
};