給定不同面額的硬幣 coins 和乙個總金額 amount。編寫乙個函式來計算可以湊成總金額所需的最少的硬幣個數。如果沒有任何一種硬幣組合能組成總金額,返回 -1。
示例 1:輸入: coins = [1, 2, 5], amount = 11
輸出: 3
解釋: 11 = 5 + 5 + 1
示例 2:最後如果要湊成11,那麼需要1枚1元加上f(10);或者1枚2元加上f(9);或者1枚5元加上f(6)。這樣又得去求f(10),f(9),f(6),10,6,9繼續分。對於硬幣情況來說,有的可以湊成,有的不能湊成,不能湊成的需要用特殊值來表示。輸入: coins = [2], amount = 3
輸出: -1
說明:你可以認為每種硬幣的數量是無限的。
最後自底向上,求出能湊成的值。
public
intcoinchange
(int
coins,
int amount)}}
if(dp[amount]
== amount +1)
return dp[amount]
;}
這應該也是典型題了。雖說是揹包問題,但是我一開始根本沒想到,腦中的第乙個想法是這個:有1,3,5面值的硬幣,要湊成9元,最少需要幾個硬幣。f(n)=1+min(f(n-1),f(n-2),f(n-3)),從這個公式推過來的這道題。
leetcode 69/100
leetcode322 零錢兌換
給定不同面額的硬幣 coins 和乙個總金額 amount。編寫乙個函式來計算可以湊成總金額所需的最少的硬幣個數。如果沒有任何一種硬幣組合能組成總金額,返回 1。示例 1 輸入 coins 1,2,5 amount 11輸出 3解釋 11 5 5 1 示例 2 輸入 coins 2 amount 3...
leetcode 322 零錢兌換
給定不同面額的硬幣 coins 和乙個總金額 amount。編寫乙個函式來計算可以湊成總金額所需的最少的硬幣個數。如果沒有任何一種硬幣組合能組成總金額,返回 1。示例 1 輸入 coins 1,2,5 amount 11 輸出 3 解釋 11 5 5 1示例 2 輸入 coins 2 amount ...
LeetCode 322 零錢兌換
322 零錢兌換 題目 給定不同面額的硬幣 coins 和乙個總金額 amount。編寫乙個函式來計算可以湊成總金額所需的最少的硬幣個數。如果沒有任何一種硬幣組合能組成總金額,返回 1。示例 1 輸入 coins 1,2,5 amount 11 輸出 3 解釋 11 5 5 1 示例 2 輸入 co...