Размен монет

MediumAlgo
10:00
Лучше работает на десктопе
Dynamic ProgrammingBFS

Даны монеты различных номиналов coins и сумма amount. Верните минимальное количество монет, необходимое для набора суммы. Если сумму невозможно набрать, верните -1.

Каждый номинал монеты можно использовать неограниченное количество раз.

Сигнатура

def coin_change(coins: list[int], amount: int) -> int:

Примеры

coin_change([1, 5, 11], 15) → 3  # (5 + 5 + 5)
coin_change([2], 3) → -1
coin_change([1], 0) → 0

Constraints

- 1 ≤ len(coins) ≤ 12
- 1 ≤ coins[i] ≤ 2³¹ - 1
- 0 ≤ amount ≤ 10⁴

Примеры

Пример 1

Вход:
coins = [1,5,11]
amount = 15
Выход:3

Пример 2

Вход:
coins = [2]
amount = 3
Выход:-1

Пример 3

Вход:
coins = [1]
amount = 0
Выход:0
Консоль
Нажмите Run или Ctrl+Enter для запуска