# Middle-题目94：322. Coin Change

53人阅读 评论(0)

You are given coins of different denominations and a total amount of money amount. Write a function to compute the fewest number of coins that you need to make up that amount. If that amount of money cannot be made up by any combination of the coins, return -1.
Example 1:
coins = [1, 2, 5], amount = 11
return 3 (11 = 5 + 5 + 1)

Example 2:
coins = [2], amount = 3
return -1.

return 3 (11 = 5 + 5 + 1)

dp[i+coins[j]]=min0i+coins[j]amountdp[i]+1$dp[i+coins[j]]=\min \limits_{0≤i+coins[j]≤amount}dp[i]+1$

public class Solution {
public int coinChange(int[] coins, int amount) {
int dp[] = new int[amount + 1];
for (int i = 1; i <= amount; i++)
dp[i] = Integer.MAX_VALUE-1;
for (int i = 0; i <= amount; i++) {
for (int j = 0; j < coins.length; j++) {
if (i + coins[j] <= amount)
dp[i + coins[j]] = Math.min(dp[i + coins[j]], dp[i] + 1);
}
}
return dp[amount] == Integer.MAX_VALUE-1 ? -1 : dp[amount];
}
}

23ms,beats 83.94%,众数25ms,9.55%
Cmershen的碎碎念：

0
0

* 以上用户言论只代表其个人观点，不代表CSDN网站的观点或立场
个人资料
• 访问：57085次
• 积分：3213
• 等级：
• 排名：第10674名
• 原创：270篇
• 转载：53篇
• 译文：0篇
• 评论：7条
文章分类
最新评论