题解 | #兑换零钱(一)#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

全部评论

相关推荐

有没有友友知道hr面会问什么我应该反问什么?还有如何防止hr套话啊?还有应该如果催hr推进快一点#字节#OPPO#hr面
牛客989988346号:职业规划,优缺点,为什么选择这个岗,对应聘公司产品的了解和满意度,如果让你改进公司产品你会怎么做,对ai(新技术)的了解,有无其他offer,什么时候能到岗
点赞 评论 收藏
分享
04-13 18:10
门头沟学院 Java
想熬夜的小飞象在秋招:被腾讯挂了后爸妈以为我失联了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务