Top 150 des entrevuesMoyen

Ballons éclatés

Guide détaillé et implémentation de Python pour le problème 'Burst Balloons'.

Énoncé du problème

Moyen

Vous recevez n ballons, indexés de 0 à n - 1. Chaque ballon est peint avec un numéro représenté par un tableau de nombres. Il vous est demandé d'éclater tous les ballons.

Si vous faites éclater le ième ballon, vous obtiendrez des pièces nums[i - 1] * nums[i] * nums[i + 1]. Si i - 1 ou i + 1 sort des limites du tableau, traitez-le comme s'il y avait un ballon avec un 1 peint dessus.

Renvoyez le maximum de pièces que vous pouvez collecter en faisant éclater les ballons judicieusement.

Écrivez une fonction maxCoins(nums: List[int]) -> int.

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

Exemples

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?
Pensez à utiliser des structures de données 2D spécifiques à DP, comme des ensembles ou des tas.
Edge Cases to Watch
  • Structures d'entrée vides
  • Entrées à élément unique
  • Grandes limites numériques

Prêt à résoudre ?

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

Ouvrir dans l'éditeur
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

Ressources Python recommandées

Développez vos connaissances avec des didacticiels interactifs, des aide-mémoire et des comparaisons de codes associés.