Back to Practice Dashboard
Top 150 InterviewMedium

Coin Change II

Learn how to solve the 'Coin Change II' problem. This detailed resource details brute force and optimized approaches.

Problem Statement

Medium

You are given an integer array coins representing coins of different denominations and an integer amount representing a total amount of money.

Return the number of combinations that make up that amount. If that amount of money cannot be made up by any combination of the coins, return 0.

You may assume that you have an infinite number of each kind of coin.

Write a function change(amount: int, coins: List[int]) -> int.

Constraints
  • 1 <= len(coins) <= 300
  • 1 <= coins[i] <= 5000
  • 0 <= amount <= 5000

Examples

Example 1
Input
amount = 5, coins = [1,2,5]
Output
4
Explanation

There are four ways to make up the amount: 5, 2+2+1, 2+1+1+1, 1+1+1+1+1.

Example 2
Input
amount = 3, coins = [2]
Output
0
Explanation

The amount of 3 cannot be made up with just 2s.

Need a Hint?
Define subproblem states, establish the recurrence relation, and use memoization (top-down) or tabulation (bottom-up).
Edge Cases to Watch
  • Empty list or null input variables
  • Single item lists/arrays
  • Extremely large input bounds causing integer or stack overflow

Ready to Solve?

Open the problem in PyRun's browser-based Python editor. Your code runs fully offline — no server required.

Open in Editor