动态规划最少硬币问题代码
时间: 2023-09-29 22:10:40 浏览: 91
以下是动态规划最少硬币问题的 Python 代码:
def min_coins(coins, total):
n = len(coins)
# 初始化一个二维矩阵
dp = [[0 for i in range(total + 1)] for j in range(n + 1)]
for i in range(1, total + 1):
dp[0][i] = float('inf')
for i in range(1, n + 1):
for j in range(1, total + 1):
if coins[i - 1] > j:
dp[i][j] = dp[i - 1][j]
else:
dp[i][j] = min(dp[i - 1][j], dp[i][j - coins[i - 1]] + 1)
if dp[n][total] != float('inf'):
return dp[n][total]
else:
return -1
coins = [1, 2, 5]
total = 11
result = min_coins(coins, total)
print("最少需要的硬币数量为:", result)
注意:此代码并非完整的程序,不能直接运行。此代码的主要作用是演示动态规划最少硬币问题的解决方法。如果想要使用此代码,请将其嵌入到您的 Python 程序中。
阅读全文