dp := make([]int, amount + 1) dp[0] = 0 for i := 1; i < amount+1; i++ { dp[i] = amount + 1 }
// 计算1~amount的每种情况下所需硬币数 for i := 1; i <= amount; i++{ for _, coin := range coins { //硬币面额大于amount则跳过 if coin <= i { // 求最小dp[i-coin] if dp[i] > dp[i-coin] + 1{ dp[i] = dp[i-coin] + 1 } } } }