Free 30-minute trial

500+ reviews from engineers

Medium · Dynamic programming · spoken drill

Free AI LeetCode Communication Coach — Coin Change

DP array dp[a] = min coins to make amount a; try each coin.

The problem

Given coin denominations and an amount, return the fewest coins to make that amount, or -1 if impossible.

Example: coins = [1,2,5], amount = 11 → 3 (5+5+1)

Define dp[a] clearly.

dp = [0] + [float("inf")] * amount
for a in range(1, amount + 1):
    for c in coins:
        if c <= a:
            dp[a] = min(dp[a], dp[a - c] + 1)
return dp[amount] if dp[amount] != float("inf") else -1

How to explain it

  1. 1. Restate

    Say the problem in your own words.

    One or two sentences. Show you understood the input, the output, and the goal — not that you memorised the prompt.

  2. 2. Approach

    Name the method before you code.

    Brute force first if you need it, then the structure you will use: hash map, two pointers, stack, binary search.

  3. 3. Example

    Walk one concrete input.

    Pick small numbers. Say what you store, what you compare, and what you return. Interviewers follow an example more easily than abstract talk.

  4. 4. Time and space

    One sentence each.

    After the example, before you claim you are done. “Time is O(n) because we scan once. Space is O(n) for the map.”

  5. 5. Edge cases

    Name at least one unusual input.

    Empty input, duplicates, already sorted, overflow. Invite a follow-up: “I would also check …”

  • “dp[a] is the min coins for amount a.”
  • “Greedy can fail — DP explores all amounts.”

Practise out loud

3 free scored runs left this hour.

Problem · Medium

Given coin denominations and an amount, return the fewest coins to make that amount, or -1 if impossible.

Example: coins = [1,2,5], amount = 11 → 3 (5+5+1)

  1. 1Restate — Say the problem in your own words.
  2. 2Approach — Name the method before you code.
  3. 3Example — Walk one concrete input.
  4. 4Time and space — One sentence each.
  5. 5Edge cases — Name at least one unusual input.

Hit record. Short countdown, then 60–90 seconds. We score the five-step script — never pronunciation.

Recording needs Chrome or Edge. You can still type below.

Model spoken script (~75s)

  1. 1. Restate

    I need the fewest coins that sum to the amount, or minus one if I cannot.

  2. 2. Approach

    I use DP. dp[a] is the minimum coins for amount a. For each amount I try every coin and take one plus dp of the remainder.

  3. 3. Example

    With coins 1,2,5 and amount 11, dp builds up to three coins — for example 5+5+1.

  4. 4. Time and space

    Time is O(amount times number of coins). Space is O(amount).

  5. 5. Edge cases

    Amount zero returns zero. If no combination works I return minus one.

Common mistakes when explaining Coin Change

  • Greedy “always take largest coin” without saying when it fails.
  • Off-by-one on initializing dp with infinity.

Other problems

Browse full catalogue

FAQ

Questions

Define dp[amount], try each coin, O(amount · coins).

More questions? Email us at contact@mocklyenglish.com.

Course: How to explain a LeetCode solution · Think out loud · Explain code out loud