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

class Solution {
public:
  int combinationSum4(vector<int> &nums, int target) {
    vector<unsigned int> dp(target + 1, 0);
    dp[0] = 1;
    for (int i = 0; i < target; i++) {
      if (!dp[i])
        continue;
      for (int num : nums)
        if (num + i <= target)
          dp[i + num] += dp[i];
    }
    return dp[target];
  }
};

int main() {
  Solution obj;
  vector<int> nums = {1, 2, 3};
  int target = 4;
  cout << obj.combinationSum4(nums, target);
}