12345678910111213141516171819202122 |
- func coinChange(coins []int, amount int) int {
- dp := make([]int, amount+1)
- for i := 1; i <= amount; i++ { // dp[0] is 0
- dp[i] = amount + 1
- }
- for _, coin := range coins {
- for i := coin; i <= amount; i++ {
- dp[i] = minInt(dp[i], dp[i-coin]+1)
- }
- }
- if amount < dp[amount] {
- return -1
- }
- return dp[amount]
- }
- func minInt(x, y int) int {
- if x < y {
- return x
- }
- return y
- }
|