Menu
CoddyTech

Burst Balloons

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

Funktion

maxCoins(nums: integer-array) → integer
numsinteger-array
die Zahlen auf den Luftballons, 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 ist kleiner als 3 × 108 und passt daher in eine vorzeichenbehaftete 32-Bit-Ganzzahl.

Beispiele

Eingabe
nums = [2, 4, 3]
Ausgabe
33
Erklärung
Entferne zuerst die 4 und erhalte 2 × 4 × 3 = 24 Münzen. Die 2 und die 3 sind nun Nachbarn, also erhältst du für das Entfernen der 2 1 × 2 × 3 = 6, und die 3, nun allein, bringt 1 × 3 × 1 = 3. Das ergibt 33, und keine andere Reihenfolge ist besser: Wenn du zuerst die kleine 2 entfernst, kommst du bereits höchstens auf 24.

lock icon+15 versteckte Tests beim Einreichen

challenge icon

Weiterführende Frage

Kannst du auch eine Reihenfolge zurückgeben, die möglichst viele Münzen einbringt?

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

Fall 1

Fall 2

Fall 3

Eingabe

nums = [2, 4, 3]

Erwartet

33