算法 第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

相关推荐
地平线开发者11 分钟前
【智驾中的大模型 -2】VLM 在自动驾驶中的应用
算法·自动驾驶
柯ran12 分钟前
数据结构|排序算法(三)选择排序 堆排序 归并排序
数据结构·算法·排序算法
无敌的牛26 分钟前
滑动窗口209. 长度最小的子数组
数据结构·算法
天天扭码1 小时前
一分钟吃透一道面试算法题——字母异位词分组(最优解)
前端·javascript·算法
网络安全研发随想1 小时前
C语言核心结构+难点精讲+工程技巧
c语言·开发语言·算法
李煜鑫2 小时前
关于视频的一些算法内容,不包含代码等
算法·音视频·语音识别
我爱工作&工作love我2 小时前
【深基18.例3】查找文献-图的储存与遍历
算法·深度优先·图论
心软且酷丶2 小时前
leetcode:2899. 上一个遍历的整数(python3解法)
python·算法·leetcode
啾啾Fun2 小时前
数据结构与算法学习导航
学习·算法
AI技术控2 小时前
计算机视觉算法实战——基于YOLOv8的农田智能虫情测报灯害虫种类识别系统开发指南
人工智能·深度学习·算法·yolo·计算机视觉