算法 第45天 动态规划7

322 零钱对兑换

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

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

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

# 先物品后背包
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

相关推荐

  1. 算法 45 动态规划7

    2024-04-20 15:34:02       34 阅读
  2. 算法 46 动态规划8

    2024-04-20 15:34:02       38 阅读
  3. 算法42动态规划4

    2024-04-20 15:34:02       31 阅读
  4. 算法 38 动态规划1

    2024-04-20 15:34:02       38 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-20 15:34:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-20 15:34:02       101 阅读
  3. 在Django里面运行非项目文件

    2024-04-20 15:34:02       82 阅读
  4. Python语言-面向对象

    2024-04-20 15:34:02       91 阅读

热门阅读

  1. 美食节目:视觉盛宴如何唤醒沉睡的食欲

    2024-04-20 15:34:02       33 阅读
  2. 带你认识Selenium函数

    2024-04-20 15:34:02       28 阅读
  3. 华为配置 dhcp snooping

    2024-04-20 15:34:02       32 阅读
  4. Yarn--npm Windows安装使用

    2024-04-20 15:34:02       29 阅读
  5. 探索人工智能:AI如何改变我们的工作和生活

    2024-04-20 15:34:02       30 阅读
  6. 应急响应流程

    2024-04-20 15:34:02       35 阅读
  7. 安卓手机APP开发__媒体开发部分__直播流

    2024-04-20 15:34:02       37 阅读
  8. web server apache tomcat11-02-setup 启动

    2024-04-20 15:34:02       36 阅读