老师您好!377号问题是求从数组中挑选一些数组成特定和的组合数,我不理解为什么把完全背包问题中的目标数放在外循环,数组中数放在内循环求出的就是包含重复的结果,可以给我解释一下么?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | 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]; } }; |