322. Coin Change
阿新 • • 發佈:2018-04-27
方法 一個數 src tar color 一個 math tps https
該題要使用動態規劃,參考了鏈接:
https://blog.csdn.net/happyaaaaaaaaaaa/article/details/50976088
中的第二種方法,主要思路是用一個數組dp來存儲硬幣的數量,例如數組中第 i 個元素就保存達到目標金額為 i 的最少硬幣數,湊齊錢數amount最少的硬幣數為 固定錢數coins[j] 的一枚硬幣,其余錢數為 amount - coins[j],那麽數量為dp[amount-conis[j]]。
代碼如下:
1 class Solution {
2 public int coinChange(int[] coins, int amount) {
3 int[] dp = new int[amount + 1];
4 for (int i = 1; i <= amount; i++) dp[i] = 0x7fff_fffe;
5 for (int coin : coins)
6 for (int i = coin; i <= amount; i++)
7 dp[i] = Math.min(dp[i], dp[i - coin] + 1);
8 return dp[amount] == 0x7fff_fffe ? -1 : dp[amount];
9 }
10 }
END
322. Coin Change