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

思路:

dpi定义为,求能够凑成数i所需要的最少个数为dpi。状态转移:dpi=min(dpi-coins\[i]+1,dpi。这里是求个数!求个数!求个数! 所以这里是由上个状态加数字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()
相关推荐
至乐活着8 小时前
深入Python内存管理与垃圾回收:从引用计数到分代回收的实战解析
python·性能优化·内存管理·垃圾回收·引用计数
m0_547486668 小时前
《Python数据分析与挖掘》全套PPT课件
python·数据挖掘·数据分析
㱘郳9 小时前
飞机大战Pygame存档
python·pygame
阿童木写作10 小时前
跨马翻译:一站式图片视频智能处理,提升跨境电商工作效率
人工智能·python·音视频
Python图像识别-110 小时前
基于yolov8的钢铁缺陷检测系统-2027毕业版(UI界面+Python项目源码+模型+标注好的数据集)
开发语言·python·yolo
aqi0010 小时前
15天学会AI应用开发(十五)使用LangChain封装AI执行链
人工智能·python·大模型·ai编程·ai应用
kisbad10 小时前
Day 012|Embedding 和向量数据库:知识库检索到底在检什么
数据库·python·embedding·agent
va学弟10 小时前
LeetCode 热题 100 题解(1):哈希
python·算法·leetcode·哈希算法
言乐610 小时前
Python实现基本搜索引擎
java·linux·开发语言·python·搜索引擎