- leetcode-377-组合总和
题型:01背包
难度:中等
题目:给定一个由正整数组成且不存在重复数字的数组,找出和为给定目标正整数的组合的个数。
代码:
class Solution {
public:
int combinationSum4(vector<int>& nums, int target) {
int n = nums.size();
if(n == 0) return 0;
vector<int> dp(target+1,0);
dp[0] = 1;
for(int i=1;i<=target;i++)
{
for(int j=0;j<n;j++)
{
if(i>=nums[j])
{
if(dp[i] >= INT_MAX-dp[i-nums[j]] )
dp[i] = INT_MAX;
else
dp[i] = dp[i]+dp[i-nums[j]];
}
}
}
return dp[target];
}
};