柠檬水找零
Lemonade Change
解
贪心法
最初,我们没有5美元钞票也没有10美元钞票,因此顾客支付
- 5美元,five++
- 10美元,如果我们没有5美元钞票,返回false;如果有,five–,ten++
- 20美元,我们可以找回一张10一张5美元,或者三张5美元。
bool lemonadeChange(int *bills, int billsSize)
{
int five = 0, ten = 0;
int i;
for (i = 0; i < billsSize; i++){
if(bills[i] == 5){
five++;
}else if(bills[i] == 10){
if(five == 0){
return false;
}
five--;
ten++;
}else{
if (five > 0 && ten > 0){
five--;
ten--;
}else if(five >= 3){
five -= 3;
}else{
return false;
}
}
}
return true;
}
结果