Menu
CoddyTech

Burst Balloons

Ti viene data una fila di palloncini rappresentata da nums, dove nums[i] è il numero sul palloncino i. Li fai scoppiare tutti, uno alla volta, in qualsiasi ordine. Far scoppiare un palloncino ti fa guadagnare left × nums[i] × right monete, dove left e right sono i numeri sui suoi vicini attuali, i palloncini più vicini ancora presenti nella fila, uno per ciascun lato. Un vicino mancante vale 1. Dopo uno scoppio, i suoi due vicini diventano adiacenti. Restituisci il numero massimo di monete che puoi raccogliere.

Funzione

maxCoins(nums: integer-array) → integer
numsinteger-array
i numeri sui palloncini, da sinistra a destra
Restituisceinteger
il maggior numero di monete che puoi raccogliere facendo scoppiare ogni palloncino

Vincoli

  • 1 ≤ nums.length ≤ 300
  • 0 ≤ nums[i] ≤ 100
  • La risposta è inferiore a 3 × 108, quindi rientra in un intero con segno a 32 bit.

Esempi

Input
nums = [2, 4, 3]
Output
33
Spiegazione
Fai esplodere il 4 per 2 × 4 × 3 = 24. Il 2, ora accanto al 3, vale 1 × 2 × 3 = 6, e il 3 vale 3: 33 in tutto.
challenge icon

Per approfondire

Puoi anche restituire un ordine esplosivo che faccia guadagnare più monete?

Ripristina il codice
def maxCoins(nums):
    # Scrivi il codice qui

Test #1

Test #2

Test #3

Argomento

nums = [2, 4, 3]

Output atteso

33