/*
* 如果求组合数就是外层for循环遍历物品,内层for遍历背包。
* 如果求排列数就是外层for遍历背包,内层for循环遍历物品。(本题)
*/
public int combinationSum4(int[] nums, int target) {
int[] dp = new int[target + 1];
dp[0] = 1;
for(int i = 0; i <= target; i++) {//先遍历背包
for(int j = 0; j < nums.length; j++) {//遍历物品
if(i >= nums[j]) {//如果背包大于或等于物品
dp[i] += dp[i - nums[j]];
}
}
}
return dp[target];
}
组合总和——【LeetCode】
最新推荐文章于 2024-07-25 11:15:54 发布