麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

322. Coin Change -Medium

2019-11-11 05:02:21
字體:
來源:轉載
供稿:網友

Question

You are given coins of different denominations and a total amount of money amount. Write a function to compute the fewest number of coins that you need to make up that amount. If that amount of money cannot be made up by any combination of the coins, return -1.

給你一組不同面額的錢以及資金總額。找到使用硬幣組合成該資金總額的最少數量。如果沒法組合得到,返回-1

Example

coins = [1, 2, 5], amount = 11 return 3 (11 = 5 + 5 + 1)


coins = [2], amount = 3 return -1.

Solution

動態規劃解。定義dp[i]:使用硬幣組合成資金總額i的最少數量,遞推關系式:dp[i] = min(dp[i - coin]) + 1 (coin in coins)。因為dp[i]都需要加上硬幣面額中的一個(當然硬幣面額一定要小于資金總額),所以我們只要找出到底加上哪個硬幣面額使用硬幣數量最少即可。對于沒法組合得到的資金總額,我們只需初始化的時候設置一個固定較大值,它并不會被更新到

class Solution(object): def coinChange(self, coins, amount): """ :type coins: List[int] :type amount: int :rtype: int """ dp = [0] + [amount + 1] * amount for a in range(1, amount + 1): for c in coins: # 只對小于amount的硬幣進行判斷 if a >= c: dp[a] = min(dp[a], dp[a - c] + 1) # 如果amount不能被硬幣組合得到,那么它對應的d[amount]不會更新 return dp[amount] if dp[amount] != amount + 1 else -1
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 午夜激情视频网站 | 国产成年人在线观看 | 亚洲男人一区 | 91短视频网页版 | 亚洲3p激情在线观看 | 精品国产一区二区三区久久久 | 色日本视频 | 欧美成人免费 | 亚洲精品久久久久久久久久久 | 一级做a爰性色毛片免费1 | 伊人网站 | 毛片视频在线免费观看 | 国产第一页精品 | 久草视频在线看 | 在线观看免费视频麻豆 | 在线观看一区二区三区四区 | 在线a | 亚洲小视频网站 | 日韩伦理电影免费观看 | 国产日韩在线观看视频 | 韩国精品一区二区三区四区五区 | 国产精品久久久久久久久久久久午夜 | 91成人免费在线观看 | 亚洲综合中文 | 国产一级免费av | 国语自产免费精品视频在 | 国产羞羞视频在线免费观看 | 欧美aaaaa一级毛片在线 | 久久草草亚洲蜜桃臀 | 亚洲精华液久久含羞草 | 青青国产在线视频 | 日本高清无遮挡 | 久久9久久 | 国产成人综合在线视频 | 亚洲国产高清一区 | 欧美一级毛片免费观看视频 | 日本在线视 | 国产精品欧美久久久久一区二区 | 午夜精品福利视频 | 国产1区2区3区在线观看 | 韩国精品一区二区三区四区五区 |