本文主要是介绍[LeetCode] Coin Change @ python,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一.题目:
给一个代表各类硬币数值的数组,还有一个金额,问凑足这个金额的最小硬币数目,如果凑不齐返回-1.
二.解题思路:
这类问题很明显是用动态规划.直接贴代码吧:
class Solution(object):def coinChange(self, coins, amount):""":type coins: List[int]:type amount: int:rtype: int"""dp = [float('inf')] * (amount + 1)dp[0] = 0for coin in coins:for i in range(coin, amount + 1):if dp[i - coin] != float('inf'):dp[i] = min(dp[i], dp[i - coin] + 1)return -1 if dp[amount] == float('inf') else dp[amount]
这篇关于[LeetCode] Coin Change @ python的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!