Medium

Coin Change 2C++

Full explanation · Time O(n * m) · Space O(m)

// Time:  O(n * m)
// Space: O(m)

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