add: 柠檬水找零
This commit is contained in:
31
src/array/lemonade-change.js
Normal file
31
src/array/lemonade-change.js
Normal file
@ -0,0 +1,31 @@
|
||||
/**
|
||||
* @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
|
||||
}
|
Reference in New Issue
Block a user