860. 柠檬水找零
860. 柠檬水找零


--解题思路--
钱币种类:5美元、10美元、20美元
购买行为存在以下情况:
-
- 5美元来一杯
- 10美元来一杯,找零5美元
- 20美元来一杯,找零存在两种情况:
- 找零10美元+5美元
- 找零5美元*3
注:每次找零必须保证按照从金额最大的开始找零,例如,20美元来一杯的时候,找零时一定优先10美元+5美元,其次在考虑5美元*3
--解题代码--
public boolean lemonadeChange(int[] bills) { int count5 = 0; int count10 = 0; for(int i:bills){ //1. 5美元来一杯 if(i == 5) count5++; // 2. 10美元来一杯,找零5美元 else if(i == 10){ if(count5>=1){ count10++; count5--; } else return false; } //3. 20美元来一杯 else { //找零时,优先考虑10美元+5美元 if(count5>=1 && count10>=1){ count5--; count10--; } //在考虑,5美元*3 else if(count5>=3){ count5 -= 3; } else return false; } } return true; }

浙公网安备 33010602011771号