[动态规划] leetcode 322 Coin Change

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

         类似背包的简单dp问题。

class Solution {
public:
    int coinChange(vector<int>& coins, int amount) {
        vector<int> dp(amount + 1, -1);
        sort(coins.begin(), coins.end());
        dp[0] = 0;
        for (int i = 1; i <= amount; i++)
        {
            int m = INT_MAX;
            for (int j = 0; j < coins.size(); j++) {
                int s = i - coins[j];
                if (s < 0)break;
                if (dp[s] == -1)continue;
                m = min(m, dp[s] + 1);
            }
            if (m != INT_MAX)dp[i] = m;
        }
        return dp[amount];
    }
};

 

posted @ 2019-08-08 10:48  fish1996  阅读(98)  评论(0)    收藏  举报