9.12|day 5|day 44 |完全背包| 518. 零钱兑换 II | 377. 组合总和 Ⅳ

● 完全背包

主要是看清01背包和完全背包的区别

//01背包
for(int i = 0;i=weight[i];j--){
    dp[j] = Math.max(dp[j],dp[j-weight[i]]+value[i]);
}
}
//完全背包
for(int i = 0;i 
  

● 518. 零钱兑换 II

//完全背包经典题目
class Solution {
    public int change(int amount, int[] coins) {
    int[] dp = new int[amount+1];
    dp[0] = 1; 
    for(int i = 0;i 
  

● 377. 组合总和 Ⅳ

9.12|day 5|day 44 |完全背包| 518. 零钱兑换 II | 377. 组合总和 Ⅳ_第1张图片

class Solution {
    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[j]){
                 dp[i] += dp[i-nums[j]];
             }
         }
     }
     return dp[target];
    }
}

你可能感兴趣的:(算法,leetcode,数据结构)