前往
大廳
主題

LeetCode - 518. Coin Change 2 解題心得

Not In My Back Yard | 2022-07-11 12:00:08 | 巴幣 0 | 人氣 213

題目連結:


題目意譯:
你被給定一整數陣列 coins 代表著不同的幣值以及一整數 amount 代表著一個金額值。

回傳湊到 amount 這個數值的方法數。如果 amount 無法以任何的硬幣組合被湊出來則回傳 0。

你可以假設每一種硬幣有無限多個。

答案保證可以容納進一個 32 位元有號整數。

限制:
1 ≦ coins.length ≦ 300
1 ≦ coins[i] ≦ 5000
coins 中所有數字皆相異。
0 ≦ amount ≦ 5000



範例測資:
範例 1:
輸入: amount = 5, coins = [1,2,5]
輸出: 4
解釋: 有四種方式可以湊出 amount:
5=5
5=2+2+1
5=2+1+1+1
5=1+1+1+1+1

範例 2:
輸入: amount = 3, coins = [2]
輸出: 0
解釋: 3 這個數值無法只用幣值 2 的硬幣湊出來。

範例 3:
輸入: amount = 10, coins = [10]
輸出: 1


解題思維:
跟昨天的題目類似,也是跟這題相似。不過因為現在在乎的是「方法數」而不是「最少」,因此其遞迴式將變為
M 的方法數 = 「M - P 的方法數」+「M 在引進幣值 P 前的方法數」




此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。

創作回應

更多創作