aboutsummaryrefslogtreecommitdiff
path: root/other/combination_sum4.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'other/combination_sum4.cpp')
-rw-r--r--other/combination_sum4.cpp24
1 files changed, 24 insertions, 0 deletions
diff --git a/other/combination_sum4.cpp b/other/combination_sum4.cpp
new file mode 100644
index 0000000..b05bc96
--- /dev/null
+++ b/other/combination_sum4.cpp
@@ -0,0 +1,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);
+}