LeetCode 322 Coin Change (python)

LeetCode 322 Coin Change (python)

分析

这题本质上是一个完全背包问题,我们有给定面额的货币,用它们得到一个金额,每种面额的货币使用数量不限很明显了,完全背包

状态定义

既然是背包问题,现在再来看看怎么定义状态。依然很明显。==f[i]==表示组成金额i需要最少的货币个数。f[0] = 0(显然)。
那么其他状态呢?也可以初始化为0吗?
不可以,从合法答案角度来考虑f[i] = 0, i>0这是不肯存在的。从背包问题来看,这是要求背包恰好装满
所以初始化,除了f[0]=0,其他的都取极大值(题目要最小的嘛,反过来我们就初始化极小值),保证都是从状态**f[0]**转移而来。

状态转移

f[i] = min
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值