组合求和
377. 组合总和 Ⅳ - 力扣(LeetCode)
如果求组合数就是外层for循环遍历物品,内层for遍历背包。
如果求排列数就是外层for遍历背包,内层for循环遍历物品。
AC:
//这里同样是,求方法个数,立刻想到dp[j]+=d[j-w[i]],但是本题的方法要求是有序的,不同序列会认为是不同方法int combinationSum4(vector<int>& nums, int target){vector<int>dp(target+10);dp[0]=1;for(int j=0;j<=target;j++)for(int i=0;i<nums.size();i++){if(j>=nums[i] && dp[j]<INT_MAX - dp[j - nums[i]]) //被坑傻了,必须要进行防止溢出操作dp[j]+=dp[j-nums[i]];}return dp[target];}