golang力扣leetcode 322.零钱兑换

简介: golang力扣leetcode 322.零钱兑换

322.零钱兑换

322.零钱兑换

题解


//state: dp[i]金额为i时所需最少硬币个数

//function: dp[i]=dp[i-n]+1

//intialize:dp[0]=0 ,别的都正无穷

//answer: dp[amount]


代码

package main
func coinChange(coins []int, amount int) int {
  dp := make([]int, amount+1)
  for i := range dp {
    dp[i] = 0x3f3f3f3f
  }
  dp[0] = 0
  for i := 0; i <= amount; i++ {
    for j := len(coins) - 1; j >= 0; j-- {
      if coins[j] <= i {
        dp[i] = min(dp[i-coins[j]]+1, dp[i])
      }
    }
  }
  if dp[amount] >= 0x3f3f3f3f {
    return -1
  }
  return dp[amount]
}
func min(a, b int) int {
  if a > b {
    return b
  }
  return a
}
目录
相关文章
|
1月前
|
Python
【Leetcode刷题Python】518. 零钱兑换 II
解决LeetCode上518题“零钱兑换 II”的Python代码示例,采用动态规划方法计算构成给定总金额的不同硬币组合数。
29 2
|
3月前
|
存储 SQL 算法
LeetCode力扣第114题:多种算法实现 将二叉树展开为链表
LeetCode力扣第114题:多种算法实现 将二叉树展开为链表
|
1月前
|
Python
【Leetcode刷题Python】322. 零钱兑换
使用动态规划解决LeetCode上322题“零钱兑换”的Python代码示例,目的是计算构成给定金额所需的最少硬币数量。
24 2
【Leetcode刷题Python】322. 零钱兑换
|
2月前
2670.找出不同元素数目差数组-力扣(LeetCode)
2670.找出不同元素数目差数组-力扣(LeetCode)
21 0
|
2月前
|
索引
821.字符的最短距离-力扣(LeetCode)
821.字符的最短距离-力扣(LeetCode)
23 0
|
3月前
|
算法 数据可视化 数据挖掘
最佳加油站选择算法:解决环路加油问题的两种高效方法|LeetCode力扣134
最佳加油站选择算法:解决环路加油问题的两种高效方法|LeetCode力扣134
|
3月前
|
存储 算法 数据可视化
LeetCode 力扣题目:买卖股票的最佳时机 IV
LeetCode 力扣题目:买卖股票的最佳时机 IV
|
3月前
|
存储 算法 数据可视化
LeetCode 力扣题目:买卖股票的最佳时机 III
LeetCode 力扣题目:买卖股票的最佳时机 III
|
1月前
|
Python
【Leetcode刷题Python】剑指 Offer 32 - III. 从上到下打印二叉树 III
本文介绍了两种Python实现方法,用于按照之字形顺序打印二叉树的层次遍历结果,实现了在奇数层正序、偶数层反序打印节点的功能。
42 6
|
1月前
|
搜索推荐 索引 Python
【Leetcode刷题Python】牛客. 数组中未出现的最小正整数
本文介绍了牛客网题目"数组中未出现的最小正整数"的解法,提供了一种满足O(n)时间复杂度和O(1)空间复杂度要求的原地排序算法,并给出了Python实现代码。
79 2