应用题-动态规划-零钱兑换( 完全背包 )

管理员
```python class Solution: # 一个整数数组 coins ,表示不同面额的硬币;以及一个整数 amount ,表示总金额。 # 计算并返回可以凑成总金额所需的 最少的硬币个数 。如果没有任何一种硬币组合能组成总金额,返回 -1 。 def coinChange(self, coins: List[int], amount: int) -> int: # 指导思想: 完全背包 # 解题过程: 明确定义dp数组的含义 # dp[ i ] 表示装满容量为i的背包所需的最小金币数 MAX_ = float( 'inf' ) dp = [ MAX_ for _ in range( amount + 1 ) ] dp[ 0 ] = 0 for v in coins: for i in range( v, amount + 1 ): dp[ i ] = min( dp[ i ], dp[ i - v ] + 1 ) return -1 if dp[ amount ] == MAX_ else dp[ amount ] ```
评论 0

发表评论 取消回复

Shift+Enter 换行  ·  Enter 发送
还没有评论,来发表第一条吧