function coinChange(coins, amount) { var dp = [0]; for(let i=1; i<=amount; i++){ dp.push(Infinity); } for(let j=0; j<coins.length; j++){ for(let i=coins[j]; i<=amount; i++){ dp[i] = Math.min(dp[i], dp[i-coins[j]]+1); } } for(let i=dp.length-1; i>=0; i--){ if(dp[i]!==Infinity){ return i; } } }