# Middle-题目94：322. Coin Change

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的碎碎念：

• 本文已收录于以下专栏：

举报原因： 您举报文章：Middle-题目94：322. Coin Change 色情 政治 抄袭 广告 招聘 骂人 其他 (最多只允许输入30个字)