代码随想录算法训练营第四十四天 | 零钱兑换 II、组合总和 Ⅳ

● 今日学习的文章链接和视频链接

题目518. 零钱兑换 II
题目377. 组合总和 Ⅳ

● 看到题目的第一想法

完全背包

● 看完代码随想录之后的想法

代码很简略,思想很困难

● 实现过程中遇到哪些困难

完全背包

● 解题代码

  1. 点击查看代码
    class Solution {
    	public int change(int amount, int[] coins) {
    		//递推表达式
    		int[] dp = new int[amount + 1];
    		//初始化dp数组,表示金额为0时只有一种情况,也就是什么都不装
    		dp[0] = 1;
    		for (int i = 0; i < coins.length; i++) {
    			for (int j = coins[i]; j <= amount; j++) {
    				dp[j] += dp[j - coins[i]];
    			}
    		}
    		return dp[amount];
    	}
    }
    
  2. 点击查看代码
    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.length; j++) {
    				if (i >= nums[j]) {
    					dp[i] += dp[i - nums[j]];
    				}
    			}
    		}
    		return dp[target];
    	}
    }
    

● 今日收获,学习时长

今日收获:完全背包
学习时长:1h
posted @ 2024-01-11 11:30  雨年今天有记录吗  阅读(1)  评论(0)    收藏  举报