leetcode 860. 柠檬水找零
class Solution { public: bool lemonadeChange(vector<int>& bills) { //贪心算法:每次找零先找最大的 vector<int> m(3,0);//分别5,10,20 vector<int> v={5,10,20};//实际上最后一个20不可能找零所以也可以不写; int len=bills.size(); for(int i=0;i<len;i++){ if(bills[i]==5){ //cout<<"x"<<endl; m[0]++;continue; } if(bills[i]==10) m[1]++; else m[2]++; int tar=bills[i]-5; for(int j=1;j>=0;j--){ int c=min(tar/v[j],m[j]); m[j]=m[j]-c; tar=tar-c*v[j]; } //cout<<tar<<endl; if(tar>0) return false; } return true; } };