本题步骤如下:
1.定义3个变量分别统计5,10,20的钞票数
2.走循环,遇到10就找零5,没有5直接失败。贪心体现在遇到20优先找零10和5,没有10再找3个5,其他情况失败
3.走完循环返回成功
class Solution {
public:
bool lemonadeChange(vector<int>& bills) {
int five = 0;
int ten = 0;
int twenty = 0;
for(int bill : bills){
if(bill == 5){
five++;
}else if(bill == 10){
if(five == 0){
return false;
}
ten++;
five--;
}else if(bill == 20){
if(ten > 0 && five > 0){
ten--;
five--;
twenty++;
}else if(five >= 3){
five -= 3;
twenty++;
}else{
return false;
}
}
}
return true;
}
};