Suppose you are given a list of coins and a certain amount of money. Each coin in the list is unique and of a different denominationA denomination is a unit of classification for the stated or face value of financial instruments such as currency notes or coins.. You are required to count the number of ways the provided coins can sum up to represent the given amount. If there is no possible way to represent that amount, then return 0.

Note: You may assume that for each combination you make, you have an infinite number of each coin. In simpler terms, you can use a specific coin as many times as you want.

Let's say you have only two coins, 1010 and 2020 cents, and you want to represent the total amount of 3030 cents using these coins. There are only two ways to do this, you can use either of the following combinations:

  • 3 coins of 1010 cents: 10+10+10=3010+10+10=30.

  • 1 coin of 1010 cents and 1 coin of 2020 cents: 10+20=30.10+20=30.


  • 1 <= coins.length <= 300

  • 1 <= coins[i] <= 5000

  • All the coins have a unique value.

  • 0 <= amount <= 5000


Let's see a few more examples to get a better understanding of the problem statement:

Level up your interview prep. Join Educative to access 70+ hands-on prep courses.