题源:LeetCode
链接:https://leetcode-cn.com/problems/coin-change/
代码:
1 class Solution { 2 public: 3 int coinChange(vector<int>& coins, int amount) { 4 vector<int> dp(amount+1,amount+1); 5 dp[0] = 0; 6 7 for (int i = 1; i <= amount; ++i) { 8 for (int j = 0; j < (int)coins.size(); ++j) { 9 if (coins[j] <= i) { 10 dp[i] = min(dp[i], dp[i - coins[j]] + 1); 11 } 12 } 13 } 14 return dp[amount] > amount ? -1 : dp[amount]; 15 } 16 };
这道题目思路不难,主要是要考虑循环内如何进行dp