Le migliori 150 intervisteMedio

Scoppiare palloncini

Guida dettagliata e implementazione Python per il problema "Burst Balloons".

Dichiarazione del problema

Medio

Ti vengono dati n palloncini, indicizzati da 0 a n - 1. Ogni palloncino è dipinto con un numero sopra rappresentato da un array nums. Ti viene chiesto di far scoppiare tutti i palloncini.

Se fai scoppiare l'iesimo palloncino, otterrai monete nums[i - 1] * nums[i] * nums[i + 1]. Se i - 1 o i + 1 esce dai limiti dell'array, trattalo come se ci fosse un palloncino con un 1 dipinto sopra.

Restituisci il numero massimo di monete che puoi raccogliere facendo scoppiare saggiamente i palloncini.

Scrivi una funzione maxCoins(nums: List[int]) -> int.

Vincoli
  • n == len(nums)
  • 1 <= n <= 300
  • 0 <= nums[i] <= 100

Esempi

Example 1
Input
nums = [3,1,5,8]
Output
167
Explanation

burst 1 -> burst 5 -> burst 3 -> burst 8. Coins: 3*1*5 + 3*5*8 + 1*3*8 + 1*8*1 = 167.

Example 2
Input
nums = [1,5]
Output
10
Explanation

burst 1 first: 1*5*1 = 5, then burst 5: 1*5*1 = 5. Total = 10.

Need a Hint?
Prendi in considerazione l'utilizzo di strutture dati specifiche per DP 2D come set o heap.
Edge Cases to Watch
  • Strutture di input vuote
  • Ingressi a elemento singolo
  • Grandi limiti numerici

Pronto a risolvere?

Open the problem in PyRun's browser-based Python editor. Your code runs fully offline — no server required.

Apri nell'editor
Found this breakdown helpful?

PyRun is built and maintained by an independent solo developer. If this helped your interview prep, consider buying a coffee!

Buy me a coffee

Risorse Python consigliate

Espandi le tue conoscenze con tutorial interattivi, foglietti illustrativi e confronti di codici correlati.