Menu
CoddyTech

Coin Change

Du erhältst eine Liste coins mit verschiedenen Münzwerten und einen Zielbetrag amount. Du kannst jeden Münzwert beliebig oft verwenden. Gib die kleinste Anzahl an Münzen zurück, deren Werte sich genau zu amount addieren, oder -1, wenn keine Kombination von Münzen diesen Betrag erreicht. Für einen Betrag von 0 werden 0 Münzen benötigt.

Funktion

coinChange(coins: integer-array, amount: integer) → integer
coinsinteger-array
die verschiedenen Münzwerte, die beliebig oft verwendet werden können
amountinteger
den exakt zu zahlenden Gesamtbetrag
Gibt zurückinteger
die wenigsten benötigten Münzen oder -1, wenn sich der Betrag nicht bilden lässt

Einschränkungen

  • 1 ≤ coins.length ≤ 12
  • 1 ≤ coins[i] ≤ 104
  • 0 ≤ amount ≤ 104
  • Alle Münzwerte sind unterschiedlich.

Beispiele

Eingabe
coins = [2, 5, 10]amount = 27
Ausgabe
4
Erklärung
10 + 10 + 5 + 2 ergibt mit vier Münzen 27. Drei Münzen reichen nicht: 27 ist ungerade, also brauchen sie genau eine 5, und die anderen beiden ergeben höchstens 20, weniger als 22.
challenge icon

Weiterführende Frage

Kannst du zählen, wie viele verschiedene Münzkombinationen zusammen amount ergeben, anstatt die geringste Anzahl an Münzen zu finden?

Code zurücksetzen
def coinChange(coins, amount):
    # Schreibe hier den Code

Test #1

Test #2

Test #3

Argumente

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

Erwartete Ausgabe

4