硬币兑换问题:

给定总金额为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 硬币兑换问题相关推荐

  1. python换零钱_python动态规划-零钱兑换

    零钱兑换 给定不同面额的硬币 coins 和一个总金额 amount.编写一个函数来计算可以凑成总金额所需的最少的硬币个数. 如果没有任何一种硬币组合能组成总金额,返回 -1. 示例 1: 输入: c ...

  2. python换零钱_Python算法之零钱兑换问题的解法

    比如:顾客购物买37元东西,给了100元,要找63元,那最少数量就是1张50元,1张10元,3张1元,一共4张. 方法一: 贪心策略 解决这个问题,最直观的就是使用贪心策略.我们会从最大面值的钱开始, ...

  3. python换零钱_python小练习之换零钱

    题:取任意一小于1美元然后计算最少多少枚硬币?(这是直接以美分为单位) 美分硬币有1美分.5美分.10美分.25美分. ======================================== ...

  4. mac的python换字体_Python -mac-画图及设置坐标中文字体

    最近有点闲暇时间,趁时学习一下Python,搭建好Python环境,环境搭建就不多说,网上很多教程,我使用的anaconda.然后开始了coding之路 import numpy as np impo ...

  5. python换源_python更换国内源

    python安装之后默认是使用国外的源,使用pip下载模块网速不是很好,有时候下到一半还会断开连接,非常不方便,最好配置国内的源. Windows下: 在Windows配置源可参考下面两个博客: 在本 ...

  6. python换零钱_Python之100个项目:零钱转换程序

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 # Python之100个项目# 假设一个商品的价值为x元,你给了y元, 计算找给你z元的程序(xyz任意的名称而已).需要注意的是,找你的零钱需要转换成 ...

  7. python换零钱_322.零钱兑换-python

    动态规划问题,稍后更新思路 class Solution(object): def coinChange(self, coins, amount): """ :type ...

  8. python换图片_Python给照片换底色(蓝底换红底)

    环境要求 Python3 numpy函数库 opencv库 安装 下载适应版本的numpy函数库,我电脑是WIN10 64位,安装的函数库是 numpy-1.13.1+mkl-cp36-cp36m-w ...

  9. 组合问题,用1元纸币兑换1分,2分和5分硬币,要求兑换总数为50枚,问组合方式多少种?

    组合问题,用1元纸币兑换1分,2分和5分硬币,要求兑换总数为50枚,问组合方式多少种? JavaScript编写 function hm2(){var num=100;var sum=0;var a= ...

最新文章

  1. 最全面的缓存架构设计
  2. 数论题目入门 基础积攒
  3. 搭建struts2.1.6环境所需要的包(7个)
  4. 【网络安全】Windows恶意软件BazarLoader分析
  5. 【干货】网工面试最常见的几大问题,附答案
  6. linux 系统后门检测工具,Linux系统的各种后门和日志工具详细介绍[2]
  7. python 小波去噪,用Pywavelet去噪信号?
  8. aodv路由协议分析
  9. C和C++结构体区别
  10. Genome Research封面文章|张勇课题组开发方法绘制胚胎发育早期转录因子结合位点图谱...
  11. 基础知识—函数-函数概述
  12. 阿里云数据库RDS MySQL 物理全备文件数据恢复至自建数据库Mysql 5.7中
  13. python使用-使用python进行数据清洗
  14. P2665 [USACO08FEB]连线游戏Game of Lines
  15. Vscode搭建jdk源码阅读环境 wsl
  16. 百旺智能编码_【百旺开票软件税控盘版】百旺金税盘开票软件下载 v2020 最新版本-趣致软件园...
  17. 火影忍者ol服务器维护中,火影忍者ol3月31日更新了什么?维护到几点?新增神无毗桥模拟战...
  18. 如何取消计算机中的0-9,告诉你如何关闭win10易升程序
  19. uniapp微信授权登录
  20. Layer btnAlign 失效问题解决方法

热门文章

  1. sin cos tan cot公式
  2. Nightsong 疯言疯语
  3. android指纹测试,Android_指纹识别测试
  4. TeamTalk 牵涉网易泡泡版权,被 Github 下架
  5. android camera(四):camera 驱动 GT2005
  6. 交换机端口的Vlan、 pvid、tag与untag
  7. Android实现自定义圆角边框渐变
  8. linux下arp攻击的解决方案[原]
  9. java 文件夹禁止访问权限_tomcat 禁止某些文件(夹)的访问
  10. 电化学工作站的原理与应用