可以用一个数组来存储当前的零钱,0索引代表5元,1索引代表10元,2索引代表20元(虽然它对解题没有一点帮助),然后就是遍历看有没有找不到零钱的情况,唯一需要注意的就是情况3,这是一个贪心策略,先找10+5再找5*3
class Solution {
public:bool lemonadeChange(vector<int>& bills) {vector<int> changes(3,0);for(int i=0;i<bills.size();i++){if(bills[i]==5)changes[0]++;else if(bills[i]==10){if(changes[0]){changes[0]--;changes[1]++;}elsereturn false;}else{if(changes[1]&&changes[0]){changes[1]--,changes[0]--;changes[2]++;}else if(changes[0]>=3){changes[0]-=3;changes[2]++;}elsereturn false;}}return true;}
};