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正则抓取网易新闻的方法示例
Apr 21 Python
Python中实现最小二乘法思路及实现代码
Jan 04 Python
python实现教务管理系统
Mar 12 Python
Python实现按照指定要求逆序输出一个数字的方法
Apr 19 Python
TensorFlow入门使用 tf.train.Saver()保存模型
Apr 24 Python
使用Python来开发微信功能
Jun 13 Python
将Django项目部署到CentOs服务器中
Oct 18 Python
Python直接赋值、浅拷贝与深度拷贝实例分析
Jun 18 Python
利用python、tensorflow、opencv、pyqt5实现人脸实时签到系统
Sep 25 Python
python实现的汉诺塔算法示例
Oct 23 Python
python 管理系统实现mysql交互的示例代码
Dec 06 Python
详解Golang如何实现支持随机删除元素的堆
Sep 23 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的一个完整SMTP类(解决邮件服务器需要验证时的问题)
2006/10/09 PHP
php 用checkbox一次性删除多条记录的方法
2010/02/23 PHP
ThinkPHP模板IF标签用法详解
2014/07/01 PHP
新浪SAE搭建PHP项目教程
2015/01/28 PHP
php查看网页源代码的方法
2015/03/13 PHP
PHP实现的抓取小说网站内容功能示例
2019/06/27 PHP
用jquery来定位
2007/02/20 Javascript
我遇到的参数传递中 双引号单引号嵌套问题
2010/02/11 Javascript
初学js 新节点的创建 删除 的步骤
2011/07/04 Javascript
首页图片漂浮效果示例代码
2014/06/05 Javascript
自动完成的搜索框javascript实现
2016/02/26 Javascript
微信js-sdk预览图片接口及从拍照或手机相册中选图接口用法示例
2016/10/13 Javascript
bootstrap flask登录页面编写实例
2016/11/01 Javascript
JavaScript中的call和apply的用途以及区别
2017/01/11 Javascript
JS实现直接运行html代码的方法
2017/03/13 Javascript
微信小程序之绑定点击事件实例详解
2017/07/07 Javascript
vue 的点击事件获取当前点击的元素方法
2018/09/15 Javascript
Node.js实现一个HTTP服务器的方法示例
2019/05/13 Javascript
javascript设计模式 ? 解释器模式原理与用法实例分析
2020/04/17 Javascript
[04:29]【TI9采访】OG.N0tail在胜者组决赛后接受采访
2019/08/25 DOTA
Python3 适合初学者学习的银行账户登录系统实例
2017/08/08 Python
详解Python中where()函数的用法
2018/03/27 Python
django 实现编写控制登录和访问权限控制的中间件方法
2019/01/15 Python
详解python读取image
2019/04/03 Python
Python寻找路径和查找文件路径的示例
2019/07/10 Python
python使用PIL和matplotlib获取图片像素点并合并解析
2019/09/10 Python
Django设置Postgresql的操作
2020/05/14 Python
印尼极简主义和实惠的在线家具店:Fabelio
2019/03/27 全球购物
介绍一下SQL Server里面的索引视图
2016/07/31 面试题
小学新教师培训方案
2014/02/03 职场文书
追悼会主持词
2014/03/20 职场文书
学校火灾防控方案
2014/06/09 职场文书
2016年会领导致辞稿
2015/07/29 职场文书
导游词之山海关
2019/12/10 职场文书
Python使用华为API为图像设置多个锚点标签
2022/04/12 Python
Android开发手册Chip监听及ChipGroup监听
2022/06/10 Java/Android