Problem: 860. Lemonade Change 柠檬水找零
解题过程
耗时100%,哈希表使用三个整数ch[3]分别表示5、10、20的存数,若收入5则ch[0]++,若收入10则判断5的存数是否==0,>0则ch[0]–, ch[1]++,若收入20则判断 ch[0]==0 || (ch[1]==0 && ch[0] < 3),否则优先使用10找零
Code
class Solution { public: int ch[3] = {0, 0, 0}; bool lemonadeChange(vector<int>& bills) { int n = bills.size(); for(int i = 0; i < bills.size(); i++) { if(bills[i]==10) { if(ch[0]==0) { return false; } else { ch[0]--; ch[1]++; } } else if(bills[i]==20) { if( ch[0]==0 || (ch[1]==0 && ch[0] < 3) ) { return false; } else { if(ch[1] > 0) { ch[1]--; ch[0]--; } else { ch[0] -= 3; } } } else { ch[0]++; } } return true; } };