aboutsummaryrefslogtreecommitdiff
path: root/coin_change.cpp
blob: 5d31f7a695f7c30e3c87495cea27a7168782bde2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include "leetcode.h"

class Solution {
public:
  int coinChange(vector<int> &coins, int amount) {
    int m = amount + 1;
    vector<int> dp(amount + 1, m);
    dp[0] = 0;
    for (int i = 1; i <= amount; i++)
      for (int j = 0; j < coins.size(); j++)
        if (coins[j] <= i)
          dp[i] = min(dp[i], dp[i - coins[j]] + 1);
    return dp[amount] > amount ? -1 : dp[amount];
  }
};

int main() {
  vector<int> coins = {1, 2, 5};
  int amount = 11;
  Solution obj;
  cout << obj.coinChange(coins, amount);
}