leetcode 322 動態規劃

2021-10-07 06:05:12 字數 515 閱讀 5974

給定不同面額的硬幣 coins 和乙個總金額 amount。編寫乙個函式來計算可以湊成總金額所需的最少的硬幣個數。如果沒有任何一種硬幣組合能組成總金額,返回 -1。

輸入: coins = [1, 2, 5], amount = 11

輸出: 3 

解釋: 11 = 5 + 5 + 1

輸入: coins = [2], amount = 3

輸出: -1

說明:

你可以認為每種硬幣的數量是無限的。

這個題目只有amount乙個限制,因此dp是個一維陣列,表示在i塊錢下最少用多少硬幣,當然我們可以遍歷下當前可選的硬幣,看看有沒有比i塊錢小的數值,這樣就可以和之前的更小的amount建立聯絡了。總體比較簡單。

class solution 

}return dp[amount] == int_max ? -1 : dp[amount];

}};

leetcode 322 零錢兌換(動態規劃)

給定不同面額的硬幣 coins 和乙個總金額 amount。編寫乙個函式來計算可以湊成總金額所需的最少的硬幣個數。如果沒有任何一種硬幣組合能組成總金額,返回 1。示例 1 輸入 coins 1,2,5 amount 11 輸出 3 解釋 11 5 5 1 示例 2 輸入 coins 2 amount...

leetcode 322 零錢兌換 動態規劃

動態規劃例題1 轉移方程 這個題目即使知道了轉移方程,最後寫出正確的程式也還是很難,有幾個細節需要注意 1.開的結果陣列大小是amount 1,這是因為我們的f x 表示拼成x最少有幾種方式,最後返回f amount 所以陣列開闢amount 1。2.初始條件f 0 0,所以遍歷f i 從i 1開始...

LeetCode 322 零錢兌換(動態規劃)

leetcode習題答案彙總 題目 給定不同面額的硬幣 coins 和乙個總金額 amount。編寫乙個函式來計算可以湊成總金額所需的最少的硬幣個數。如果沒有任何一種硬幣組合能組成總金額,返回 1。示例 1 輸入 coins 1,2,5 amount 11 輸出 3 解釋 11 5 5 1 示例 2...