LeetCode 322. 零钱兑换(Coin Change)
发布日期:2021-06-29 17:12:16
浏览次数:2
分类:技术文章
本文共 944 字,大约阅读时间需要 3 分钟。
LeetCode.jpg
322. 零钱兑换 给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。 示例 1: 输入: coins = [1, 2, 5], amount = 11 输出: 3 解释: 11 = 5 + 5 + 1 示例 2: 输入: coins = [2], amount = 3 输出: -1 说明: 你可以认为每种硬币的数量是无限的。
Python3 实现
动态规划
# @author:leacoder# @des: 动态规划 零钱兑换class Solution: def coinChange(self, coins: List[int], amount: int) -> int: if amount < 0 : return -1 DP = [amount + 1]*(amount + 1) #DP[i] 表示 总金额 为 i 时的最少硬币数,极限情况硬币数为 amount 不可能为 amount + 1 DP[0] = 0 # 初始 下面 DP[i - coin] 中 i - coin = 0时 for i in range(1,amount+1): # 总金额 1 到 amount 的循环 for coin in coins: # 不同面额遍历 if coin <= i: # 面额小于总金额 DP[i] = min(DP[i],DP[i - coin] + 1) # DP方程 类似70. 爬楼梯; if DP[amount] == amount+1: return -1 else: return DP[amount]
GitHub链接:
知乎个人首页:简书个人首页:个人Blog:欢迎大家来一起交流学习
转载地址:https://blog.csdn.net/leacock1991/article/details/101467261 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
逛到本站,mark一下
[***.202.152.39]2024年04月25日 19时37分40秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
有个码龄5年的程序员跟我说:“他连wifi从来不用密码”
2019-04-29
领导让我整理上个季度的销售额,幸好我会Python数据分析,你猜我几点下班
2019-04-29
【Python爬虫实战】为何如此痴迷Python?还不是因为爱看小姐姐图
2019-04-29
零基础自学Python,你也可以实现经济独立!
2019-04-29
数字化转型的主干道上,华为云以“三大关键”成企业智能化推手
2019-04-29
数字化为何不走“捷”“径”?
2019-04-29
和总裁、专家交朋友,华为云助推政企智能化升级又做到前面去了
2019-04-29
BCOP章鱼船长,6月22日晚上8点上线薄饼
2019-04-29
为战疫助力,半导体功不可没
2019-04-29
了解这些操作,Python中99%的文件操作都将变得游刃有余!
2019-04-29
知道如何操作还不够!深入了解4大热门机器学习算法
2019-04-29
只有经历过,才能深刻理解的9个编程道理
2019-04-29
发现超能力:这些数据科学技能助你更高效专业
2019-04-29
AI当道,人工智能将如何改变金融业?
2019-04-29
消除性别成见,技术领域需要更多“乘风破浪的姐姐”
2019-04-29
7行代码击败整个金融业,这对20多岁的爱尔兰兄弟是如何做到的?
2019-04-29
2020十大编程博客:私藏的宝藏编程语言博客大放送!
2019-04-29
编程中的角色选择:哪类工作角色最适合你?
2019-04-29
10种算法一文打尽!基本图表算法的视觉化阐释
2019-04-29