322. 零钱兑换
class Solution {
public int coinChange(int[] coins, int amount) {
int[] dp = new int[amount + 1];
dp[0] = 0;
for(int i = 1; i <= amount;i++){
dp[i] = 10010;
for(int j = 0;j < coins.length;j++){
if(i - coins[j] >= 0) dp[i] =Math.min(dp[i - coins[j]] + 1,dp[i]);
}
}
return dp[amount] == 10010? -1 : dp[amount];
}
}
dp[i]的含义是,数量为i的情况下,组成i的最小硬币个数。
开始理解一些这种套路了诶