首页 > 其他分享 >力扣中322 零钱兑换

力扣中322 零钱兑换

时间:2023-03-16 17:34:00浏览次数:29  
标签:322 int coins 力扣 零钱 amount dp

 

 

 看了题解基本上能写个7788 但是一些细节的处理还是bug

public int coinChange(int[] coins, int amount) {
        int len = coins.length;
        int[]dp=new int[amount+1]; //这块amount+1 dp数组还有位置0
        Arrays.fill(dp, amount+1);//这块原来设置整数最大值 其实amount+1就够了
        dp[0]=0;   //这块设置0处为0航 其他对于df[coins[i]]不用设置 大循环里包含了
        for(int i=1;i<=amount;i++) {
            for(int j=0;j<len;j++) {
                if(coins[j]<=i) {//不判断这个会bug 因为dp寻址为负数
                    dp[i]=Math.min(dp[i-coins[j]]+1, dp[i]);
                }
            }
        }
        return dp[amount]>amount?-1:dp[amount] ;
    }

 

标签:322,int,coins,力扣,零钱,amount,dp
From: https://www.cnblogs.com/ayuanjiejie/p/17223519.html

相关文章