Coin Change
medium · dynamic programming
You are given coin denominations `coins` and an amount of money `amount`. You may use any number of coins of each denomination. Find the fewest coins needed to make up exactly `amount`. If no combination of the coins can make the amount, return -1.
Input: `coins` (a list of positive integers) and `amount` (a non-negative integer).
Output: the smallest number of coins that sums to amount, or -1 if impossible.
Example: coins = [1, 2, 5], amount = 11 -> 3, because 5 + 5 + 1 uses three coins.
Starter code
def coin_change(coins: list[int], amount: int) -> int:
"""Return the fewest coins that make amount, or -1 if impossible."""
pass
Loading editor…
Each test has a five-second execution limit. Your practice drafts and solved progress stay in this browser.
Return to the Python compiler