零钱兑换

给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。

如果没有任何一种硬币组合能组成总金额,返回 -1。

示例 1:

输入: coins = [1, 2, 5], amount = 11

输出: 3

解释: 11 = 5 + 5 + 1

示例 2:

输入: coins = [2], amount = 3

输出: -1

说明: 你可以认为每种硬币的数量是无限的。

from typing import List

class Solution:

def coinChange(self, coins: List[int], amount: int) -> int:

dp = [-1 for _ in range(amount+1)]

dp[0]=0

for i in range(len(coins)):

if coins[i]

dp[coins[i]] = 1

for i in range(1,amount+1):

temp = []

for v in coins:

if i-v>=0 and dp[i-v]!=-1:

temp.append(dp[i-v]+1)

dp[i] = min(temp) if temp!=[] else -1

return dp[amount]

if __name__ == "__main__":

s= Solution()

coins = [1, 2, 5]

amount = 11

# coins = [2]

# amount = 3

r= s.coinChange(coins, amount)

print(r)

零钱兑换II

给定不同面额的硬币和一个总金额。写出函数来计算可以凑成总金额的硬币组合数。假设每一种面额的硬币有无限个。

示例 1:

输入: amount = 5, coins = [1, 2, 5]

输出: 4

解释: 有四种方式可以凑成总金额:

5=5

5=2+2+1

5=2+1+1+1

5=1+1+1+1+1

示例 2:

输入: amount = 3, coins = [2]

输出: 0

解释: 只用面额2的硬币不能凑成总金额3。

示例 3:

输入: amount = 10, coins = [10]

输出: 1

from typing import List

class Solution:

def change(self, amount: int, coins: List[int]) -> int:

dp = [0 for _ in range(amount+1)]

dp[0] = 1

for value in coins:

for i in range(amount+1):

if i-value>=0:

dp[i] +=dp[i-value]

return dp[amount]

python换零钱_python动态规划-零钱兑换相关推荐

  1. python换硬币_Python的硬币兑换动态编程实现记录,CoinChange,最少,组合,python,规划

    题目为给定不同面值的n种硬币,面值加起来等于一个特定的数m,求最少需要多少枚硬币实现. 这个问题如果使用暴力求解,需要穷举所有可以加起来等m的组合,时间复杂度为O(m^n). def coin_27_ ...

  2. python换硬币_Python 硬币兑换问题

    硬币兑换问题: 给定总金额为A的一张纸币,现要兑换成面额分别为a1,a2,....,an的硬币,且希望所得到的硬币个数最少. # 动态规划思想 dp方程式如下 # dp[0] = 0 # dp[i] ...

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

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

  4. python换源_python更换国内源

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

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

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

  6. python换零钱有多少种方案_Python3算法实例 1.2:动态规划 之 换零钱

    money.jpg 问题(基础版): 把100元兑换成1元,2元,5元,10元,20元,50元的零钱,共有多少种不同换法. 动态规划思想解析: 拆解子问题 下面以5元换成1,2,3元的零钱为例.T[( ...

  7. 某人去玩具店买小熊,小熊进价为20,卖价是30,付给老板100元,老板没有零钱,就在卖鞋的人那里换了100元零钱,找给卖家70,卖鞋的发现那100元是假币,于是找老板换回了100元,请问玩具店老板损失

    某人去玩具店买小熊,小熊进价为20,卖价是30,付给老板100元,老板没有零钱,就在卖鞋的人那里换了100元零钱,找给卖家70,卖鞋的发现那100元是假币,于是找老板换回了100元,请问玩具店老板损失 ...

  8. Python学习教程(Python学习视频_Python学些路线):Day05 总结和练习

    Python学习教程(Python学习视频_Python学些路线):总结和练习 练习清单 寻找"水仙花数". 寻找"完美数". "百钱百鸡" ...

  9. python 列表 换行_python基础语法学习——参考Python Crash Course

    第一章:python在各个系统之间的安装和使用(略) 第二章: 变量 2.1.每个变量都存储了一个值 --与变量相关联的信息.在程序中可随时修改变量的值,而 Python将始终记录变量的最新值. 2. ...

最新文章

  1. C语言中的typedef
  2. can与could区别
  3. python从零开始的学习-python学习过程之从零开始
  4. hdu 3339 In Action 背包+flyod
  5. 错误:不能继续进行下一步操作 openfire 设置._如何为MacBook或Mac电脑恢复出厂设置...
  6. 前端基础_认识前端.md
  7. fastjson把对象转化成json避免$ref
  8. CPU的内部物理结构介绍
  9. SQL锁机制和事务隔离级别
  10. HTML中的padding和margin
  11. 【编辑器】VSCode制表符Tab等修改
  12. win2003服务器安全设置
  13. SuperMap iDesktop之夜景特效制作
  14. Allpairs正交工具的安装、使用及错误提示解决办法
  15. 最新 Transformer 预训练模型综述!
  16. 如何写好一份 30 K offer 的简历(建议收藏)
  17. 三三速记英语 需要者看
  18. excel 设置表头表尾
  19. DLL注入_远程线程注入
  20. Hybrid App开发实战

热门文章

  1. 华为手机鸿蒙系统有什么优点和缺点,有多少人愿意亲身体验鸿蒙系统?华为自研系统,有哪些优势?...
  2. 视频教程-Layabox3D游戏开发入门-微信3D小游戏案例 -微信开发
  3. 【VNC使用指南】Ubuntu Kylin 使用 TigerVNC
  4. ultraiso制作u盘启动盘教程
  5. flash读写导致死机问题分析
  6. 【读懂Autosar代码】-6-Function函数的定义
  7. 对于SDL中colorkey的理解
  8. 程序设计与算法(一)第7周测验(2019夏季)
  9. 中国演绎太空生命传奇
  10. 【Pygame小游戏】一发超人:弓箭手佛系射鸟休闲小游戏,你能射中几只?(源码白嫖)