老师您好!377号问题是求从数组中挑选一些数组成特定和的组合数,我不理解为什么把完全背包问题中的目标数放在外循环,数组中数放在内循环求出的就是包含重复的结果,可以给我解释一下么?
class Solution {
public:
int combinationSum4(vector<int>& nums, int target) {
int n=nums.size();
if(n==0)
return 0;
vector<int> memo(target+1,0);
memo[0]=1;
for(int i=1;i<=target;i++)
{
for(int j=0;j<n;j++)
{
if(nums[j]<=i)
memo[i]=memo[i]+memo[i-nums[j]];
}
}
return memo[target];
}
};