322. Coin Change

Posted sysu_kww

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了322. Coin Change相关的知识,希望对你有一定的参考价值。

该题要使用动态规划,参考了链接:

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的主要内容,如果未能解决你的问题,请参考以下文章

算法:找零钱322. Coin Change

322. Coin Change

LeetCode OJ 322. Coin Change DP求解

[leetcode-322-Coin Change]

322. Coin Change(leetcode )

Leetcode322. Coin Change