Menu
CoddyTech

Burst Balloons

Eine Reihe von Luftballons ist als nums gegeben, wobei nums[i] die Zahl auf Luftballon i ist. Du lässt alle Luftballons platzen, einen nach dem anderen, in beliebiger Reihenfolge. Für das Platzen eines Luftballons erhältst du left × nums[i] × right Münzen, wobei left und right die Zahlen auf seinen aktuellen Nachbarn sind, also den nächstgelegenen Luftballons auf jeder Seite, die sich noch in der Reihe befinden. Ein fehlender Nachbar zählt als 1. Nach dem Platzen werden seine beiden Nachbarn benachbart. Gib die größtmögliche Anzahl an Münzen zurück, die du sammeln kannst.

Funktion

maxCoins(nums: integer-array) → integer
numsinteger-array
die Zahlen auf den Ballons, von links nach rechts
Gibt zurückinteger
die meisten Münzen, die du sammeln kannst, indem du jeden Ballon zum Platzen bringst

Einschränkungen

  • 1 ≤ nums.length ≤ 300
  • 0 ≤ nums[i] ≤ 100
  • Die Antwort liegt unter 3 × 108 und passt daher in eine vorzeichenbehaftete 32-Bit-Ganzzahl.

Beispiele

Eingabe
nums = [2, 4, 3]
Ausgabe
33
Erklärung
Multipliziere die 4 mit 2 × 4 × 3 = 24. Die 2 erhält, jetzt neben der 3, 1 × 2 × 3 = 6, und die 3 erhält 3: insgesamt 33.
challenge icon

Weiterführende Frage

Kannst du außerdem eine platzende Reihenfolge zurückgeben, mit der du die meisten Münzen verdienst?

Code zurücksetzen
def maxCoins(nums):
    # Schreibe hier den Code

Test #1

Test #2

Test #3

Argument

nums = [2, 4, 3]

Erwartete Ausgabe

33