From 092fef5d608ff3a22078890223be55665cba1948 Mon Sep 17 00:00:00 2001 From: CyC2018 Date: Thu, 17 Oct 2019 01:34:50 +0800 Subject: [PATCH] auto commit --- docs/notes/Leetcode 题解 - 动态规划.md | 18 ++++++++++-------- notes/Leetcode 题解 - 动态规划.md | 18 ++++++++++-------- 2 files changed, 20 insertions(+), 16 deletions(-) diff --git a/docs/notes/Leetcode 题解 - 动态规划.md b/docs/notes/Leetcode 题解 - 动态规划.md index c556ee0f..fd51bf13 100644 --- a/docs/notes/Leetcode 题解 - 动态规划.md +++ b/docs/notes/Leetcode 题解 - 动态规划.md @@ -869,18 +869,20 @@ return -1. ```java public int coinChange(int[] coins, int amount) { -public int change(int amount, int[] coins) { - if (coins == null) { - return 0; - } int[] dp = new int[amount + 1]; - dp[0] = 1; for (int coin : coins) { - for (int i = coin; i <= amount; i++) { - dp[i] += dp[i - coin]; + for (int i = coin; i <= amount; i++) { //将逆序遍历改为正序遍历 + if (i == coin) { + dp[i] = 1; + } else if (dp[i] == 0 && dp[i - coin] != 0) { + dp[i] = dp[i - coin] + 1; + + } else if (dp[i - coin] != 0) { + dp[i] = Math.min(dp[i], dp[i - coin] + 1); + } } } - return dp[amount]; + return dp[amount] == 0 ? -1 : dp[amount]; } ``` diff --git a/notes/Leetcode 题解 - 动态规划.md b/notes/Leetcode 题解 - 动态规划.md index a0a50a4a..c7c6b8ce 100644 --- a/notes/Leetcode 题解 - 动态规划.md +++ b/notes/Leetcode 题解 - 动态规划.md @@ -869,18 +869,20 @@ return -1. ```java public int coinChange(int[] coins, int amount) { -public int change(int amount, int[] coins) { - if (coins == null) { - return 0; - } int[] dp = new int[amount + 1]; - dp[0] = 1; for (int coin : coins) { - for (int i = coin; i <= amount; i++) { - dp[i] += dp[i - coin]; + for (int i = coin; i <= amount; i++) { //将逆序遍历改为正序遍历 + if (i == coin) { + dp[i] = 1; + } else if (dp[i] == 0 && dp[i - coin] != 0) { + dp[i] = dp[i - coin] + 1; + + } else if (dp[i - coin] != 0) { + dp[i] = Math.min(dp[i], dp[i - coin] + 1); + } } } - return dp[amount]; + return dp[amount] == 0 ? -1 : dp[amount]; } ```