判断下列动态规划代码是否正确实现可重复选取硬币的最少零钱兑换功能

zn680677 判断题 共 个子题

给定n种硬币,第i种硬币的面值为coins[i-1],目标金额为amt,每种硬币可以重复选取,求能够凑出目标金额的最少硬币数量;如果不能凑出目标金额,返回-1。对应代码如下:

def coinChangeDPComp(coins: list[int], amt: int) -> int:
    n = len(coins)
    MAX = amt + 1

    dp = [MAX] * (amt + 1)
    dp[0] = 0

    for i in range(1, n + 1):
        for a in range(1, amt + 1):
            if coins[i - 1] > a:
                dp[a] = dp[a]
            else:
                dp[a] = min(dp[a], dp[a - coins[i - 1]] + 1)

    return dp[amt] if dp[amt] != MAX else -1
A

正确

B

错误

正在加载题目数据…
已答 /
子题
该题型需在试卷/作业中作答,单题练习暂不支持
答案解析
讨论
发布
登录后参与讨论 立即登录
发布讨论需先绑定并验证手机号 去绑定手机号
加载中…
我
我
回复 @
回复 @
发送
还没有人讨论,来发表第一条吧