思路:初始化手上已有的五元钱和十元钱的数量count5=0,count10=0
;然后遇到5元,count5++
;遇到十元,判断count5>0?
;遇到20元,判断count10>0&&count5>0
或者count5>=3
;如果遇到10元或者20元有任意情况不满足,直接返回false;
class Solution {
public:
bool lemonadeChange(vector<int> &bills)
{
int count5 = 0, count10 = 0;
int len = bills.size();
for (auto b : bills)
{
if (b == 5)
count5++;
else if (b == 10)
{
if (count5)
{
count5--;
count10++;
}
else
{
return false;
}
}
else
{
if (count10 && count5)
{
count10--;
count5--;
}
else if (count5 >= 3)
{
count5 -= 3;
}
else
{
return false;
}
}
}
return true;
}
};