java零钱换整程序_每日一题 | 2020.03.08 | 零钱兑换

"""

322. 零钱兑换

https://leetcode-cn.com/problems/coin-change/solution/yong-bei-bao-wen-ti-si-xiang-lai-li-jie-ying-bi-zh/

思路:动态规划法,需要理解:dp[amount]=min(dp[amount],dp[amount-coin]+1)

1.定义dp区域[0,amount+1],并初始化最大值(用于min比较)

2.循环coin面值

3.从当前coin值循环至value(amount-coin>=0)

4.计算当前值所需要最小硬币值dp[value]=min(dp[amount],dp[amount-coin]+1)

5.输出结果;没有对应结果,输出-1

注意:coin按小->大有序排序好

初始化最大值->float('inf')

初始化dp[0]=0;表示value=0,硬币数量=0

例子:

0 1 2 3 4 5 6 7 8 9 10 11

1: 1 1 1 1 1 1 1 1 1 1 1

2: 1 2 2 3 3 4 4 5 5 6

5: 1 2 2 3 3 2 3

dp: 0 1 2

"""

def coinChange(coins, amount):

dp=[float('inf')]*(amount+1) #定义动态规划所需要数组区域

dp[0]=0 #初始化dp[0]值

for coin in coins: #循环co

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值