leetcode860. 柠檬水找零
解题思路
硬模拟
代码
class Solution {
public boolean lemonadeChange(int[] bills) {
HashMap<Integer, Integer> m = new HashMap<>();
m.put(5, 0);
m.put(10, 0);
m.put(20, 0);
for (int i = 0; i < bills.length; i++) {
if (bills[i] == 5) {
m.put(5, m.get(5) + 1);
} else if (bills[i] == 10) {
if (m.get(5) <= 0) return false;
else {
m.put(5,m.get(5)-1);
m.put(10, m.get(10) + 1);
}
} else if (bills[i] == 20) {
if (!(m.get(5) >= 3 || (m.get(5) >= 1 && m.get(10) >= 1))) return false;
else {
if (m.get(10) >= 1 && m.get(5) >= 1) {
m.put(10, m.get(10) - 1);
m.put(5, m.get(5) - 1);
}else{
m.put(5,m.get(5)-3);
}
m.put(20,m.get(20)+1);
}
}
}
return true;
}
}

浙公网安备 33010602011771号