题目链接:860. 柠檬水找零 - 力扣(LeetCode)
收的钱只能是5、10、20美元,分类讨论:收5美元无需找零;收10美元找零5元;收20美元找零15美元。其中对于找零15美元的方案有两种,此处涉及贪心算法:找零1张10美元+1张5美元、找零3张5美元,一定是方案一优先级高于方案二。
class Solution {
public:bool lemonadeChange(vector<int>& bills) {int five=0;int ten=0;for(auto e:bills){if(e==5)++five;else if(e==10){++ten;if(five>0)--five;elsereturn false;}else//贪心算法{if(ten>0){--ten;if(five>0)--five;elsereturn false;}else{if(five>=3)five-=3;elsereturn false;} }}return true;}
};