Dynamic programmingLeetCode 322

Lesson 61 of 76

Coin Change

Find the fewest coins needed to make an amount, or −1 if it cannot be made.

Watch on YouTube

Lesson notes

Try it before you watch

Restate the problem in your own words, list the edge cases, and sketch a solution with its running time. Then play the video and compare.

Reveal the key idea

Bottom-up DP: dp[a] is 1 + the minimum of dp[a − coin] over all coins that fit.

Pattern: Dynamic programming. Define a state, write the recurrence between states, and compute each state only once.

Complexity

Cost of the standard optimal approach for Coin Change
Measure Bound
Time O(amount · number of coins)
Extra space O(amount)

Walkthroughs often start from a simpler approach first; aim to reach these bounds. New to Big-O? Read understanding algorithmic complexity.