测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A26919. 下面代码采用动态规划求解零钱兑换问题:给定 种硬币,第 𝑖 种硬币的面值为 𝑐𝑜𝑖𝑛𝑠[𝑖 − 1] ,目标金额为𝑎𝑚𝑡 ,每种硬币可以重复选取,求能够凑出目标金额的最少硬币数量;如果不能凑出目标金额,返回 -1 。( )def coinChangeDPComp(coins: list[int], amt: int) -> int: n = len(coins) MAX = amt + 1 dp…

判断题 困难

题目描述

下面代码采用动态规划求解零钱兑换问题:给定 种硬币,第 𝑖 种硬币的面值为 𝑐𝑜𝑖𝑛𝑠[𝑖 − 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

选项(单选)

上一题 下一题