You are given coins of different denominations and a total amount of money. Write a function to compute the number of combinations that make up that amount. You may assume that you have infinite number of each kind of coin.
Note:
You can assume that
- 0 <= amount <= 5000
- 1 <= coin <= 5000
- the number of coins is less than 500
- the answer is guaranteed to fit into signed 32-bit integer
給予你不同面額的金幣和一個金額的總數。寫一個函式去計算有幾種組合可以湊成該金額。你可以假設每種面額的金幣都有無限枚。
提示:
你可以假設
- 0 <= amount <= 5000
- 1 <= coin <= 5000
- 金幣的種類數少於 500
- 答案保證可以用 32 位元的有號正整數去表示
0 ~ amount
共amount + 1
個格子,其代表金額為i
的時候有的組合數。
DP[amount]
。DP[0] = 1
。(每種硬幣都不拿、一種組合)。LeetCode
C++