1️⃣.零钱兑换I
题目:可以凑成总金额所需的最少的硬币个数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Solution {
    public int coinChange(int[] coins, int amount) {
        int[] dp = new int[amount+1];
        Arrays.fill(dp,amount+1);
        dp[0]=0;
        for(int i=1;i<=amount;++i){
            for(int j=0;j<coins.length;++j){
                if(i>=coins[j]){
                    dp[i]=Math.min(dp[i],dp[i-coins[j]]+1);
                }
            }
        }
        return dp[amount]!=amount+1?dp[amount]:-1;
    }
}
2️⃣.零钱兑换II
题目:请你计算并返回可以凑成总金额的硬币组合数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class Solution {
    public int change(int amount, int[] coins) {
        int[]dp=new int[amount+1];
        
        dp[0]=1;
        for(int co:coins){
            for(int i=co;i<=amount;++i){
                dp[i]+=dp[i-co];
            }
        }
        return dp[amount];
    }
}
2.总结提炼🎯
1
  
