看了题解基本上能写个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