在柠檬水摊上,每一杯柠檬水的售价为
5
美元。顾客排队购买你的产品,(按账单bills
支付的顺序)一次购买一杯。每位顾客只买一杯柠檬水,然后向你付
5
美元、10
美元或20
美元。你必须给每个顾客正确找零,也就是说净交易是每位顾客向你支付
5
美元。注意,一开始你手头没有任何零钱。
如果你能给每位顾客正确找零,返回
true
,否则返回false
。
public boolean lemonadeChange(int[] bills)
{
int fiveSmallChange = 0; // 五毛零钱
int tenSamllChange = 0; // 十毛零钱
for (int i=0; i<bills.length; i++)
{
if (bills[i] == 5)
fiveSmallChange++;
else if (bills[i] == 10)
{
if (fiveSmallChange < 1)
return false;
fiveSmallChange--;
tenSamllChange++;
}
else if(bills[i] == 20)
{
if (tenSamllChange >=1 && fiveSmallChange >= 1)
{
tenSamllChange--;
fiveSmallChange--;
}
else if (fiveSmallChange >= 3)
fiveSmallChange -= 3;
else
return false;
}
}
return true;
}