动态规划——零钱兑换(python)

思路:

dp[i]定义为,求能够凑成数i所需要的最少个数为dp[i]。状态转移:dp[i]=min(dp[i-coins[i]]+1,dp[i]。这里是求个数!求个数!求个数! 所以这里是由上个状态加数字1转移,这里要好好理解。

复制代码
def coinsChange(coins,n):
    #求能凑成i的最少个数
    dp=[float('inf')]*(n+1)
    dp[0]=0
    for i in range(1,n+1):
        for j in coins:
            if i>=j:
                dp[i]=min(dp[i-j]+1,dp[i])
    if dp[n]==float('inf'):
        return -1
    return dp[n]


def main():
    coins=list(map(int,input().split()))
    n=int(input())
    res=coinsChange(coins,n)
    print(res)

if __name__=="__main__":
    main()
相关推荐
南 阳13 小时前
Python从入门到精通day66
开发语言·python
m0_5967490913 小时前
JavaScript中手动实现一个new操作符的底层逻辑
jvm·数据库·python
DTAS尺寸公差分析软件13 小时前
DTAS3D v13.0 三维尺寸公差分析软件可申请试用
python·尺寸公差分析·三维公差分析·公差仿真软件·尺寸链计算
DTAS尺寸公差分析软件13 小时前
DTAS 3D公差分析软件最新版本介绍
python·3d·尺寸公差分析·尺寸链计算·尺寸工程·尺寸链校核软件·公差仿真分析
PieroPc13 小时前
CAMWATCH — 局域网摄像头监控系统 Fastapi + html
前端·python·html·fastapi·监控
feasibility.13 小时前
反爬十层妖塔:现代爬虫攻防的立体战争
爬虫·python·科技·scrapy·rust·go·硬件
十八旬14 小时前
快速安装ClaudeCode完整指南
开发语言·windows·python·claude
dFObBIMmai14 小时前
如何在 CSS 中实现元素的绝对定位,使其不受窗口尺寸变化影响
jvm·数据库·python
WL_Aurora15 小时前
Python 算法基础篇之集合
python·算法
头歌实践平台15 小时前
招聘大数据可视化
大数据·python