柠檬水找零
简析:
- 每个人只能买一杯
- 当顾客用10块钱买柠檬水的时候,此时必须有5块钱找零,否则返回false;
- 当客户给20块钱买柠檬水的时候,可以选择5、5、5或者5、10找零,否则return false;
例如:
输入:[5,5,10,20]
输出:true
输入:[5,10,20]
输出:false
代码
public class Limonade {
public static void main(String[] args) {
int[] bills = {5,10,5,20};
// System.out.println(change(new int[]{5,10,20}));
System.out.println(change(bills));
}
public static Boolean change(int[] bills){
int five = 0,ten = 0;
for (int bill:bills) {
if (bill == 5){//使用5块钱买柠檬水的情况
five++;
}else if (bill == 10){//使用10块钱买柠檬水的情况
if (five == 0){
return false;
}else {
five--;
ten++;
}
}else {//使用20块钱买柠檬水的情况
// 核心,优先使用5、10,5块的可用于10、20块的找零,10块只能用于20块找零
if (five > 0 && ten > 0){//找零5、10
five--;
ten--;
}else if (five >= 3){//找零5、5、5
five-=3;
}else {
return false;
}
}
}
return true;
}
}