题解 | #兑换零钱(一)#dp数组解法

兑换零钱(一)

https://www.nowcoder.com/practice/3911a20b3f8743058214ceaa099eeb45

#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 最少货币数
# @param arr int整型一维数组 the array
# @param aim int整型 the target
# @return int整型
#dp数组解法
class Solution:
    def minMoney(self , arr: List[int], aim: int) -> int:
#dp数组的定义:当目标金额为 i 时,至少需要 dp[i] 枚硬币凑出。
        dp=[aim+1]*(aim+1)
        dp[0]=0
        for i in range(len(dp)):
            for coin in arr:
                if i<coin:
                    continue
                dp[i]=min(dp[i],dp[i-coin]+1)
        if dp[aim]==aim+1:
            return -1
        return dp[aim]


            
            

            
        # write code here

全部评论

相关推荐

04-17 10:16
门头沟学院 Java
小浪_coder:24届很难找了,马上25的都毕业了还有很多没找到的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务