算法 第45天 动态规划7

322 零钱对兑换

给你一个整数数组 coins ,表示不同面额的硬币;以及一个整数 amount ,表示总金额。

计算并返回可以凑成总金额所需的 最少的硬币个数 。如果没有任何一种硬币组合能组成总金额,返回 -1 。

你可以认为每种硬币的数量是无限的。

python 复制代码
# 先物品后背包
def coinChange(coins:'list[int]',amount:int)->int:
	dp=[float{'inf'}]*(amount+1)
	dp[0]=0
	for coin in coins:
		for i in range(coin,amount+1):
			if dp[i-coin]!=float('inf):
				dp[i]=min(dp[i-coin]+1,dp[i])
	if dp[amount]==float('inf'):
		return -1
	return dp[amount]
	
# 先背包后物品
def coinChange(coins,amount):
	dp=[float{'inf'}]*(amount+1)
	dp[0]=0
	for i in range(1,amount+1):
		for j in range(len(coins)):
			if i-coins[j]>=0 and dp[i-coins[j]]!=float('inf')
				dp[i]=min(dp[i-coins[j]]+1,dp[i])
	if dp[amount]==float('inf'):
		return -1
	return dp[amount]
	
	

279

相关推荐
学代码的CJY12 分钟前
从代码出发理解时间复杂度与空间复杂度
数据结构·算法
白帽攻防录33 分钟前
SRC 挖洞:WSO2 JWT 算法混淆绕过深度复盘,CVE-2026-5430 不支持的算法怎么变成管理员
网络·算法·安全·网络安全·jwt
小O的算法实验室1 小时前
IEEE TEVC,基于精确与DQN群智能调度方法用于多目标异构USV
算法
可乐ea2 小时前
AI Agent 工具调用准确性评测:选择错误与参数错误分开测
大数据·人工智能·算法·大模型·工具调用·ai智能体·agent评测
上位机妹子2 小时前
C 语言 数组删除指定元素(快慢指针法)
c语言·数据结构·算法
心中有你02142 小时前
【路径规划】A*寻路算法最通俗易懂讲解(C语言完整实现+详细注释)
c语言·开发语言·算法
papaofdoudou3 小时前
初中数学-整数整除判定法全解:从 2 到 19 的方法、依据与证明
算法
让学习成为一种生活方式3 小时前
啤酒花基因组与重测序--Nature Communications
人工智能·算法
l1t4 小时前
DeepSeek总结的OpenZL压缩变换器
c++·算法
想吃火锅10054 小时前
【leetcode】238.除了自身以外数组的乘积js
javascript·算法·leetcode