文章目录
题目
代码(7.21 首刷自解)
简单模拟,只需要维护5元和10元的数量就可以了。
贪心思路应该就是:面对20元找零时,优先用掉10元面额的
class Solution {
public:
bool lemonadeChange(vector<int>& bills) {
unordered_map<int, int> map;
for(int& bill : bills) {
if(bill == 5)
map[5]++;
else if(bill == 10) {
if(map[5] > 0) {
map[10]++;
map[5]--;
} else {
return false;
}
} else {
if(map[10] > 0 && map[5] > 0) {
map[10]--;
map[5]--;
} else if(map[5] >= 3) {
map[5] -= 3;
} else {
return false;
}
}
}
return true;
}
};