零钱兑换
公式
dp[i] = Math.min(dp[i], dp[i - coin] + 1)
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| class Solution { public: int coinChange(vector<int>& coins, int amount) { vector<int> dp(amount + 1);
dp[0] = 0; for (int n = 1; n <= amount; n++) { dp[n] = -1; for (int i = 0; i < coins.size(); i++) { if (n - coins[i] >= 0 && dp[n - coins[i]] != -1) { if (dp[n] == -1) { dp[n] = dp[n - coins[i]] + 1; } else if (dp[n] > dp[n - coins[i]] + 1) { dp[n] = dp[n - coins[i]] + 1; } } } }
return dp[amount]; } };
|
v1.4.14