Python 硬币兑换问题


Posted in Python onJuly 29, 2019

硬币兑换问题:

给定总金额为A的一张纸币,现要兑换成面额分别为a1,a2,....,an的硬币,且希望所得到的硬币个数最少。

# 动态规划思想 dp方程式如下
# dp[0] = 0
# dp[i] = min{dp[i - coins[j]] + 1}, 且 其中 i >= coins[j], 0 <= j < coins.length
# 回溯法,输出可找的硬币方案
# path[i] 表示经过本次兑换后所剩下的面值,即 i - path[i] 可得到本次兑换的硬币值。
 
 
def changeCoins(coins, n):
  if n < 0: return None
  dp, path = [0] * (n+1), [0] * (n+1) # 初始化
  for i in range(1, n+1):
    minNum = i # 初始化当前硬币最优值
    for c in coins: # 扫描一遍硬币列表,选择一个最优值
      if i >= c and minNum > dp[i-c]+1:
        minNum, path[i] = dp[i-c]+1, i - c
    dp[i] = minNum # 更新当前硬币最优值
 
  print('最少硬币数:', dp[-1])
  print('可找的硬币', end=': ')
  while path[n] != 0:
    print(n-path[n], end=' ')
    n = path[n]
  print(n, end=' ')
 
 
if __name__ == '__main__':
  coins, n = [1, 4, 5], 22 # 输入可换的硬币种类,总金额n
  changeCoins(coins, n)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python的id()函数介绍
Feb 10 Python
Python中的赋值、浅拷贝、深拷贝介绍
Mar 09 Python
Pyhthon中使用compileall模块编译源文件为pyc文件
Apr 28 Python
python魔法方法-自定义序列详解
Jul 21 Python
Python中Scrapy爬虫图片处理详解
Nov 29 Python
pytz格式化北京时间多出6分钟问题的解决方法
Jun 21 Python
python列表,字典,元组简单用法示例
Jul 11 Python
python logging.basicConfig不生效的原因及解决
Feb 20 Python
Python图像处理库PIL的ImageGrab模块介绍详解
Feb 26 Python
详解PyQt5信号与槽的几种高级玩法
Mar 24 Python
Python实现学生管理系统并生成exe可执行文件详解流程
Jan 22 Python
python神经网络 使用Keras构建RNN训练
May 04 Python
django中使用Celery 布式任务队列过程详解
Jul 29 #Python
详解python中自定义超时异常的几种方法
Jul 29 #Python
Python 离线工作环境搭建的方法步骤
Jul 29 #Python
如何通过python的fabric包完成代码上传部署
Jul 29 #Python
Python八皇后问题解答过程详解
Jul 29 #Python
python 标准差计算的实现(std)
Jul 29 #Python
Python 二叉树的层序建立与三种遍历实现详解
Jul 29 #Python
You might like
PHP实现网上点歌(二)
2006/10/09 PHP
zend framework多模块多布局配置
2011/02/26 PHP
PHP记录页面停留时间的方法
2016/03/30 PHP
PHP实现的简单适配器模式示例
2017/06/22 PHP
Laravel框架实现超简单的分页效果示例
2019/02/08 PHP
JS验证邮箱格式是否正确的代码
2013/12/05 Javascript
ExtJS 刷新后如何默认选中刷新前最后一次选中的节点
2014/04/03 Javascript
浅析javascript中函数声明和函数表达式的区别
2015/02/15 Javascript
jquery仿百度经验滑动切换浏览效果
2015/04/14 Javascript
JavaScript中计算网页中某个元素的位置
2015/06/10 Javascript
js实现随屏幕滚动的带缓冲效果的右下角广告代码
2015/09/04 Javascript
jquery.validate[.unobtrusive]和Bootstrap实现tooltip错误提示问题分析
2016/10/30 Javascript
JS原生轮播图的简单实现(推荐)
2017/07/22 Javascript
JS中Object对象的原型概念基础
2018/01/29 Javascript
vue cli构建的项目中请求代理与项目打包问题
2018/02/26 Javascript
VUE组件中的 Drawer 抽屉实现代码
2019/08/06 Javascript
js实现一款简单踩白块小游戏(曾经很火)
2019/12/02 Javascript
[01:35:13]DOTA2-DPC中国联赛 正赛 DLG vs PHOENIX BO3 第一场 1月18日
2021/03/11 DOTA
Python中IPYTHON入门实例
2015/05/11 Python
Python中的descriptor描述器简明使用指南
2016/06/02 Python
tensorflow创建变量以及根据名称查找变量
2018/03/10 Python
Python3.4 tkinter,PIL图片转换
2018/06/21 Python
Ubuntu下升级 python3.7.1流程备忘(推荐)
2018/12/10 Python
Python日期格式和字符串格式相互转换的方法
2020/02/18 Python
Django Admin后台添加数据库视图过程解析
2020/04/01 Python
一文详述 Python 中的 property 语法
2020/09/01 Python
台湾母婴用品限时团购:妈咪爱
2018/08/03 全球购物
文秘自荐信
2013/10/20 职场文书
实习老师离校感言
2014/02/03 职场文书
个人委托书怎么写
2014/04/04 职场文书
放飞中国梦演讲稿
2014/04/23 职场文书
国际贸易系求职信
2014/08/09 职场文书
违章停车检讨书
2014/10/21 职场文书
辩护意见书
2015/06/04 职场文书
详细总结Python常见的安全问题
2021/05/21 Python
Mysql索引失效 数据库表中有索引还是查询很慢
2022/05/15 MySQL