动态规划——零钱兑换(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()
相关推荐
RanMatrix6 分钟前
Python列表精讲
python
大模型丫丫25 分钟前
FastAPI 入门指南:从零开始构建高性能 Python API
开发语言·python·fastapi
叫我:松哥33 分钟前
基于flask图书数据管理系统,技术栈flask+MySQL+boostrap
python·mysql·flask
wangchen_036 分钟前
PyTorch
人工智能·pytorch·python
卷无止境1 小时前
Python的contextlib与 FastAPI 中的上下文管理
后端·python·fastapi
测试19981 小时前
接口自动化测试的全面解析与实战指南
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·接口测试
whcyhhh1 小时前
头歌实践教学平台:数据科学与大数据技术导论(九上)
大数据·python
卷无止境1 小时前
FastAPI Events 深度解析与工程实践
后端·python·fastapi
FYKJ_20101 小时前
springboot网上购书商城---附源码15749
java·spring boot·后端·python·spark·django·php
青 春 记 忆1 小时前
LeetCode 234. 回文链表|Python 解法详解
python·leetcode·链表