给定一个由正整数组成且不存在重复数字的数组,找出和为给定目标正整数的组合的个数。
示例:
nums = [1, 2, 3]target = 4
所有可能的组合为:(1, 1, 1, 1)(1, 1, 2)(1, 2, 1)(1, 3)(2, 1, 1)(2, 2)(3, 1)
请注意,顺序不同的序列被视作不同的组合。
因此输出为 7。
算法:动态规划
class Solution {
public:
int combinationSum4(vector<
int>& nums,
int target) {
vector<
long long>f(target+
1,
0);
f[0]=
1;
for(
int i=
1;i<=target;i++
)
for(
int j=
0;j<nums.size();j++
)
if(i>=nums[j])f[i]+=f[i-nums[j]]+
0ull;
//if(f[target]==0)return 0;
return f[target]*
1ull;
}
};
转载于:https://www.cnblogs.com/programyang/p/11154251.html