150 principais entrevistasMédio

Estourar balões

Guia detalhado e implementação de Python para o problema de 'Burst Balloons'.

Declaração do problema

Médio

Você recebe n balões, indexados de 0 a n - 1. Cada balão é pintado com um número representado por uma matriz nums. Você é solicitado a estourar todos os balões.

Se você estourar o i-ésimo balão, você receberá nums[i - 1] * nums[i] * nums[i + 1] moedas. Se i - 1 ou i + 1 sair dos limites da matriz, trate-o como se houvesse um balão com um 1 pintado nele.

Retorne o máximo de moedas que você pode coletar estourando os balões com sabedoria.

Escreva uma função maxCoins(nums: List[int]) -> int.

Restrições
  • n == len(nums)
  • 1 <= n <= 300
  • 0 <= nums[i] <= 100

Exemplos

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?
Considere o uso de estruturas de dados 2D específicas de DP, como conjuntos ou heaps.
Edge Cases to Watch
  • Estruturas de entrada vazias
  • Entradas de elemento único
  • Grandes limites numéricos

Pronto para resolver?

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

Abrir no 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

Recursos Python recomendados

Expanda seu conhecimento com tutoriais interativos relacionados, folhas de dicas e comparações de código.