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 ansible服务及剧本编写
Dec 29 Python
python递归实现快速排序
Aug 18 Python
CentOS 7 安装python3.7.1的方法及注意事项
Nov 01 Python
python用插值法绘制平滑曲线
Feb 19 Python
Python Image模块基本图像处理操作小结
Apr 13 Python
Python Pandas数据结构简单介绍
Jul 03 Python
python Jupyter运行时间实例过程解析
Dec 13 Python
Pytorch to(device)用法
Jan 08 Python
Python使用Socket实现简单聊天程序
Feb 28 Python
使用OpenCV校准鱼眼镜头的方法
Nov 26 Python
python爬取微博评论的实例讲解
Jan 15 Python
Python中time标准库的使用教程
Apr 13 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 获取目录下的图片并随机显示的代码
2009/12/28 PHP
PHP中实现中文字符进制转换原理分析
2011/12/06 PHP
php返回字符串中所有单词的方法
2015/03/09 PHP
php中namespace及use用法分析
2016/12/06 PHP
如何在PHP中使用AES加密算法加密数据
2020/06/24 PHP
JS解密入门 最终变量劫持
2008/06/25 Javascript
用dtree实现树形菜单 dtree使用说明
2011/10/17 Javascript
jquery(hide方法)隐藏指定元素实例
2013/11/11 Javascript
jQuery实现的导航条切换可显示隐藏
2014/10/22 Javascript
node.js中的http.response.addTrailers方法使用说明
2014/12/14 Javascript
Javascript中innerHTML用法实例分析
2015/01/12 Javascript
JS 对象属性相关(检查属性、枚举属性等)
2015/04/05 Javascript
JavaScript中的Math.LOG2E属性使用详解
2015/06/14 Javascript
举例讲解Node.js中的Writable对象
2015/07/29 Javascript
JavaScript中关于for循环删除数组元素内容时出现的问题
2016/11/21 Javascript
微信小程序 动态绑定数据及动态事件处理
2017/03/14 Javascript
JavaScript关联数组用法分析【概念、定义、遍历】
2017/03/15 Javascript
JS数组去重(4种方法)
2017/03/27 Javascript
JS中使用media实现响应式布局
2017/08/04 Javascript
swiper 自动图片无限轮播实现代码
2018/05/21 Javascript
React如何解决fetch跨域请求时session失效问题
2018/11/02 Javascript
基于js实现抽红包并分配代码实例
2019/09/19 Javascript
[48:51]完美世界DOTA2联赛PWL S2 Magma vs InkIce 第一场 11.28
2020/12/02 DOTA
python中的__init__ 、__new__、__call__小结
2014/04/25 Python
简单的抓取淘宝图片的Python爬虫
2014/12/25 Python
在Python的Django框架中调用方法和处理无效变量
2015/07/15 Python
Python实现的计数排序算法示例
2017/11/29 Python
python之文件读取一行一行的方法
2018/07/12 Python
python实现银联支付和支付宝支付接入
2019/05/07 Python
简单了解Django ContentType内置组件
2019/07/23 Python
执行Django数据迁移时报 1091错误及解决方法
2019/10/14 Python
浅谈html5与APP混合开发遇到的问题总结
2018/03/20 HTML / CSS
感恩节活动策划方案
2014/05/16 职场文书
写给父母的感谢信
2015/01/22 职场文书
《黄山奇石》教学反思
2016/02/18 职场文书
vue-router中hash模式与history模式的区别
2021/06/23 Vue.js