Coin Change (Fewest Coins)

MEDIUM

Given an integer array coins representing different coin denominations and an integer amount representing the total amount of money, write a function that returns the fewest number of coins needed to make up that amount. If that amount cannot be made up by any combination of the coins, return -1. You may assume you have an infinite number of each kind of coin.

Examples:

Example 1:

Input: coins = [1, 2, 5], amount = 11
Output: 3
Explanation: 11 = 5 + 5 + 1

Example 2:

Input: coins = [2], amount = 3
Output: -1

Constraints:

  • 1 <= coins.length <= 12
  • 1 <= coins[i] <= 231 - 1
  • 0 <= amount <= 104

Function Signature (Python):

from typing import List

class Solution:
    def coinChange(self, coins: List[int], amount: int) -> int:
        # Your code here
        pass

 

Nerchuko Academy · Free DS Interview Prep