150 najlepszych wywiadówŚredni

Pękające balony

Szczegółowy przewodnik i implementacja Python dla problemu „Burst Balloons”.

Oświadczenie o problemie

Średni

Dostajesz n balonów, indeksowanych od 0 do n - 1. Każdy balon jest pomalowany numerem reprezentowanym przez tablicę nums. Zostaniesz poproszony o rozerwanie wszystkich balonów.

Jeśli pękniesz i-ty balon, otrzymasz nums[i - 1] * nums[i] * nums[i + 1] monety. Jeśli i - 1 lub i + 1 wyjdzie poza zakres tablicy, potraktuj to tak, jakby był balon z namalowaną liczbą 1.

Zwróć maksymalną liczbę monet, jakie możesz zebrać, mądrze rozbijając balony.

Napisz funkcję maxCoins(nums: List[int]) -> int.

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

Przykłady

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?
Rozważ użycie struktur danych specyficznych dla 2D DP, takich jak zestawy lub sterty.
Edge Cases to Watch
  • Puste struktury wejściowe
  • Wejścia jednoelementowe
  • Duże granice liczbowe

Gotowy do rozwiązania?

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

Otwórz w Edytorze
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

Polecane zasoby Pythona

Poszerzaj swoją wiedzę dzięki powiązanym interaktywnym samouczkom, ściągawkom i porównaniom kodów.