diff --git a/Leecode/src/main/java/com/markilue/leecode/dynamic/second/T12_Change.java b/Leecode/src/main/java/com/markilue/leecode/dynamic/second/T12_Change.java index a1a16ce..ec80a67 100644 --- a/Leecode/src/main/java/com/markilue/leecode/dynamic/second/T12_Change.java +++ b/Leecode/src/main/java/com/markilue/leecode/dynamic/second/T12_Change.java @@ -84,4 +84,25 @@ public class T12_Change { return dp[amount]; } + + /** + * 进一步优化 + * @param amount + * @param coins + * @return + */ + public int change2(int amount, int[] coins) { + + int[] dp = new int[amount + 1]; + + dp[0]=1; + + for (int i = 0; i < coins.length; i++) { + for (int j = 1; j < dp.length; j++) { + if (j - coins[i] >= 0) dp[j] += dp[j - coins[i]]; + } + } + return dp[amount]; + + } }