Нашли ошибку?

Монеты странной страны

СредняяРеализацияГлава 9

#динамическое программирование#жадные алгоритмыid: ga-odd-coins

В одной стране монеты бывают необычных номиналов, например [1, 3, 4]. Жадный выбор «сначала самую крупную» тут не всегда оптимален. Напишите min_coins(amount, coins): функция возвращает минимальное число монет на сумму amount, решая задачу таблицей, или -1, если сумму набрать нельзя.

Примеры

min_coins(6, [1, 3, 4])   # 2: 3 + 3 (жадно было бы 4 + 1 + 1)
min_coins(7, [2, 4])      # -1
min_coins(0, [5])         # 0

Ограничения

Решение

def min_coins(amount: int, coins: list[int]) -> int:
    """Минимальное число монет на сумму amount или -1."""
    # ваш код
    raise NotImplementedError

Можно решать и в своём редакторе: «Скопировать с тестами» и запустите python3 odd_coins.py — тесты те же, результат покажет ✓ / ✗ и итог.