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通过ftplib登录到ftp服务器的方法
May 08 Python
Python 内置函数complex详解
Oct 23 Python
Python执行时间的计算方法小结
Mar 17 Python
Python创建xml文件示例
Mar 22 Python
python实现kmp算法的实例代码
Apr 03 Python
浅谈PyQt5 的帮助文档查找方法,可以查看每个类的方法
Jun 25 Python
Django实现微信小程序的登录验证功能并维护登录态
Jul 04 Python
浅谈django url请求与数据库连接池的共享问题
Aug 29 Python
Django admin管理工具TabularInline类用法详解
May 14 Python
Python selenium实现断言3种方法解析
Sep 08 Python
使用Python制作一盏 3D 花灯喜迎元宵佳节
Feb 26 Python
教你用Python+selenium搭建自动化测试环境
Jun 18 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 数据库字段复用的基本原理与示例
2011/07/22 PHP
PHP数组相加操作及与array_merge的区别浅析
2016/11/26 PHP
php设计模式之策略模式实例分析【星际争霸游戏案例】
2020/03/26 PHP
php7 list()、session及其他模块的修改实例分析
2020/05/25 PHP
跨浏览器的设置innerHTML方法
2006/09/18 Javascript
js 图片缩放(按比例)控制代码
2009/05/27 Javascript
5个最佳的Javascript日期处理类库分享
2012/04/15 Javascript
javascript parseInt() 函数的进制转换注意细节
2013/01/08 Javascript
Jquery删除css属性的简单方法
2016/12/04 Javascript
jQuery实现扑克正反面翻牌效果
2017/03/10 Javascript
vue中设置height:100%无效的问题及解决方法
2018/07/27 Javascript
Vue源码之关于vm.$delete()/Vue.use()内部原理详解
2019/05/01 Javascript
jQuery提示框插件SweetAlert用法分析
2019/08/05 jQuery
浅谈layui 表单元素的选中问题
2019/10/25 Javascript
Python抓取框架Scrapy爬虫入门:页面提取
2017/12/01 Python
Python cookbook(数据结构与算法)将名称映射到序列元素中的方法
2018/03/22 Python
flask项目集成swagger的方法
2020/12/09 Python
HTML+CSS3模拟心的跳动实例代码
2017/09/05 HTML / CSS
自定义html标记替换html5新增元素
2008/10/17 HTML / CSS
HTML5 自动聚焦(autofocus)属性使用介绍
2013/08/07 HTML / CSS
HTML5各种头部meta标签的功能(推荐)
2017/03/13 HTML / CSS
UGG雪地靴德国官网:UGG德国
2016/11/19 全球购物
丝芙兰加拿大官方网站:SEPHORA加拿大
2018/11/20 全球购物
以下为Windows NT 下的32 位C++程序,请计算sizeof 的值
2016/12/07 面试题
Python的两道面试题
2013/06/29 面试题
swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
2013/03/30 面试题
高级方案规划工程师岗位职责
2013/11/29 职场文书
思想政治教育专业个人求职信范文
2013/12/20 职场文书
考试不及格检讨书
2014/01/09 职场文书
党的群众路线教育实践活动批评与自我批评范文
2014/10/16 职场文书
幼儿园辞职信范文
2015/02/27 职场文书
绿里奇迹观后感
2015/06/15 职场文书
2016年班主任新年寄语
2015/08/18 职场文书
中国梦宣传标语口号
2015/12/26 职场文书
《珍珠鸟》教学反思
2016/02/16 职场文书
聊聊Python中关于a=[[]]*3的反思
2021/06/02 Python