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 30 Python
python从网络读取图片并直接进行处理的方法
May 22 Python
python使用win32com库播放mp3文件的方法
May 30 Python
在主机商的共享服务器上部署Django站点的方法
Jul 22 Python
Python Requests模拟登录实现图书馆座位自动预约
Apr 27 Python
Flask之flask-script模块使用
Jul 26 Python
python3 线性回归验证方法
Jul 09 Python
python多线程共享变量的使用和效率方法
Jul 16 Python
pytorch查看通道数 维数 尺寸大小方式
May 26 Python
Java如何基于wsimport调用wcf接口
Jun 17 Python
PyQt5 QDockWidget控件应用详解
Aug 12 Python
selenium判断元素是否存在的两种方法小结
Dec 07 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
.htaccess文件保护实例讲解
2011/02/06 PHP
PHP依赖倒置(Dependency Injection)代码实例
2014/10/11 PHP
Windows下Apache + PHP SESSION丢失的解决过程全纪录
2015/04/07 PHP
JavaScript 解析Json字符串的性能比较分析代码
2009/12/16 Javascript
JavaScript Event学习第八章 事件的顺序
2010/02/07 Javascript
Javascript 通过json自动生成Dom的代码
2010/04/01 Javascript
JavaScript的类型转换(字符转数字 数字转字符)
2010/08/30 Javascript
文字溢出实现溢出的部分再放入一个新生成的div中具体代码
2013/05/17 Javascript
JavaScript indexOf方法入门实例(计算指定字符在字符串中首次出现的位置)
2014/10/17 Javascript
jQuery中each()、find()和filter()等节点操作方法详解(推荐)
2016/05/25 Javascript
基于jQuery和hwSlider实现内容左右滑动切换效果附源码下载(一)
2016/06/22 Javascript
浅谈Angular的$q, defer, promise
2016/12/20 Javascript
Angular.JS中指令ng-if的注意事项小结
2017/06/21 Javascript
Vue.js 2.x之组件的定义和注册图文详解
2018/06/19 Javascript
JavaScript事件对象event用法分析
2018/07/27 Javascript
关于在vue 中使用百度ueEditor编辑器的方法实例代码
2018/09/14 Javascript
Iview Table组件中各种组件扩展的使用
2018/10/20 Javascript
微信小程序云开发实现云数据库读写权限
2019/05/17 Javascript
微信小程序监听用户登录事件的实现方法
2019/11/11 Javascript
[00:43]TI7不朽珍藏III——幽鬼不朽展示
2017/07/15 DOTA
Django中传递参数到URLconf的视图函数中的方法
2015/07/18 Python
浅谈python中set使用
2016/06/30 Python
TensorFlow在MAC环境下的安装及环境搭建
2017/11/14 Python
Python面向对象封装操作案例详解 II
2020/01/02 Python
Python实现一个优先级队列的方法
2020/07/31 Python
Windows下pycharm安装第三方库失败(通用解决方案)
2020/09/17 Python
使用Python Tkinter实现剪刀石头布小游戏功能
2020/10/23 Python
肯尼亚网上商城:Kilimall
2016/08/20 全球购物
中国跨境电商:Tomtop
2017/03/16 全球购物
斯洛伐克家具和时尚装饰品购物网站:Butlers.sk
2019/09/08 全球购物
个人简历自我评价
2014/01/06 职场文书
高中生期末评语大全
2014/01/28 职场文书
运动会通讯稿400字
2014/01/28 职场文书
会计员岗位职责
2014/03/15 职场文书
学校计划生育责任书
2015/05/09 职场文书
车辆挂靠协议书
2016/03/23 职场文书