Files
js-practice/src/array/lemonade-change.js
2020-05-24 23:46:31 +08:00

32 lines
650 B
JavaScript

/**
* @param {number[]} bills
* @return {boolean}
*/
export const lemonadeChange = function (bills) {
const map = new Map()
while (bills.length) {
const money = bills.shift()
if (money === 5) {
map.set(5, (map.get(5) || 0) + 1)
} else {
let change = money - 5
while (change !== 0 && change - 10 > 0 && map.get(10) > 0) {
map.set(10, map.get(10) - 1)
change -= 10
}
while (change !== 0 && map.get(5) > 0) {
map.set(5, map.get(5) - 1)
change -= 5
}
if (change !== 0) return false
map.set(money, (map.get(money) || 0) + 1)
}
}
return true
}