Menu
CoddyTech

Coin Change

Vous recevez une liste coins de différentes valeurs de pièces et un amount cible. Vous pouvez utiliser chaque valeur de pièce autant de fois que vous le souhaitez. Renvoyez le plus petit nombre de pièces dont les valeurs totalisent exactement amount, ou -1 si aucune combinaison de pièces ne permet de l’atteindre. Un montant de 0 nécessite 0 pièce.

Fonction

coinChange(coins: integer-array, amount: integer) → integer
coinsinteger-array
les différentes valeurs de pièces, chacune utilisable autant de fois que nécessaire
amountinteger
le montant total à payer exactement
Renvoieinteger
le nombre minimum de pièces nécessaire, ou -1 lorsque le montant ne peut pas être composé

Contraintes

  • 1 ≤ coins.length ≤ 12
  • 1 ≤ coins[i] ≤ 104
  • 0 ≤ amount ≤ 104
  • Toutes les valeurs des pièces sont différentes.

Exemples

Entrée
coins = [2, 5, 10]amount = 27
Sortie
4
Explication
10 + 10 + 5 + 2 font 27 avec quatre pièces. Trois pièces ne suffisent pas : 27 est impair, donc il faut exactement une pièce de 5, et les deux autres totalisent au maximum 20, ce qui est inférieur à 22.
challenge icon

Pour aller plus loin

Peux-tu compter combien de combinaisons différentes de pièces permettent d’obtenir amount, au lieu de chercher le nombre minimal de pièces ?

Réinitialiser le code
def coinChange(coins, amount):
    # Écrivez le code ici

Test #1

Test #2

Test #3

Arguments

coins = [2, 5, 10]
amount = 27

Résultat attendu

4