第41638题 判断题
下面代码采用动态规划求解零钱兑换问题:给定 n 种硬币,第𝑖种硬币的面值为𝑐𝑜𝑖𝑛𝑠[𝑖 − 1],目标金额为 𝑎𝑚𝑡,每种硬币可以重复选取,求能够凑出目标金额的最少硬币数量;如果不能凑出目标金额,返回-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
{{ option.label }}
子题{{ index + 1 }} {{ child.type_label }}
{{ option.label }}
✓ 正确 ◐ 部分正确 ✗ 错误
程序运行统计
暂无判题统计
知识点:
提交{{ questionInfo.stats ? questionInfo.stats.submit_count : 0 }}次 正确率{{ statsAccuracy }}%
答案解析