給定不同面額的硬幣 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...