https://leetcode.com/problems/coin-change/

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/**
* @param {number[]} coins
* @param {number} amount
* @return {number}
*/
var coinChange = function(coins, amount) {
let dp = new Array(amount + 1).fill(amount + 1)
dp[0] = 0
for (let i = 1; i <= amount; i++) {
for (let c of coins) {
if (c <= i) {
dp[i] = Math.min(dp[i], dp[i - c] + 1)
}
}
}
return dp[amount] > amount ? -1 : dp[amount]
};