leetcode322 零錢兌換

2021-10-04 15:23:21 字數 839 閱讀 5622

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

示例 1:

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

輸出: 3

解釋: 11 = 5 + 5 + 1

示例 2:

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

輸出: -1

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

最後如果要湊成11,那麼需要1枚1元加上f(10);或者1枚2元加上f(9);或者1枚5元加上f(6)。這樣又得去求f(10),f(9),f(6),10,6,9繼續分。對於硬幣情況來說,有的可以湊成,有的不能湊成,不能湊成的需要用特殊值來表示。

最後自底向上,求出能湊成的值。

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...