【leetcode 动态规划(完全背包问题) C++】518. Coin Change 2

518. Coin Change 2

在这里插入图片描述

class Solution {
    
    
public:
    int change(int amount, vector<int>& coins) {
    
    
        vector<int> dp(amount + 1, 0);
        dp[0] = 1;
        for(auto coin : coins) {
    
    
            for(int jj = coin; jj <= amount; jj++) {
    
    
                dp[jj] += dp[jj - coin];
            }
        }
        return dp[amount];
    }
};

在这里插入图片描述

class Solution {
    
    
public:
    int change(int amount, vector<int>& coins) {
    
    
        vector<vector<int> > dp(coins.size() + 1, vector<int>(amount + 1, 0));
        dp[0][0] = 1;
        for(int ii = 1; ii <= coins.size(); ii++) {
    
    
            for(int jj = 0; jj <= amount; jj++) {
    
    
                dp[ii][jj] = dp[ii - 1][jj];
                if(jj >= coins[ii-1]) dp[ii][jj] += dp[ii][jj - coins[ii-1]];
            }
        }
        return dp[coins.size()][amount];
    }
};

猜你喜欢

转载自blog.csdn.net/m0_37454852/article/details/114270694