动态规划——零钱兑换(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()
相关推荐
2401_837163891 小时前
CSS如何实现网页打印样式优化_利用@media print重写布局
jvm·数据库·python
思绪无限2 小时前
YOLOv5至YOLOv12升级:快递包裹检测系统的设计与实现(完整代码+界面+数据集项目)
人工智能·python·深度学习·目标检测·计算机视觉·快递包裹检测
千寻girling2 小时前
机器学习 | 逻辑回归 | 尚硅谷学习
java·人工智能·python·学习·算法·机器学习·逻辑回归
永远不会的CC2 小时前
研0上岸找实习面试经历
python·算法·面试
l1t2 小时前
duckdb excel插件和rusty_sheet插件在python中的不同表现
开发语言·python·excel
pele3 小时前
如何解决多线图中线条颜色不渲染(仅标记和提示框显示颜色)的问题
jvm·数据库·python
forEverPlume3 小时前
golang如何排查大量goroutine性能问题_golang大量goroutine性能排查详解
jvm·数据库·python
2301_814809863 小时前
踩坑实战pywebview:用 Python + Web 技术打造轻量级桌面应用
开发语言·前端·python
2401_883600253 小时前
Golang怎么CGO交叉编译_Golang如何在交叉编译时处理CGO依赖问题【避坑】
jvm·数据库·python