給定n個氣球,編號從0至n-1,每個氣球上寫了乙個數字,這些數字存放在陣列nums中。現在你來扎破所有的氣球。當扎破第i個氣球時,可以得到的金幣個數為nums[left] * nums[i] * nums[right],這裡的left和right指的是第i個氣球相鄰氣球的編號。(當扎破乙個氣球後,原來它左右側的氣球將成為相鄰氣球)。
求通過扎氣球可以獲得的最大金幣數量。
(1) 可以假想nums[-1] = nums[n] = 1,當然,它們僅僅是為了方便假想出來的,並不能夠被扎破
(2) 0 ≤ n ≤ 500, 0 ≤ nums[i] ≤ 100
給定氣球上數字的陣列為 [3, 1, 5, 8]時,最大可以獲得167個金幣。扎氣球的次序如下:
}問題url:
312 戳氣球 動態規劃
難度 困難 2020 7 19每日一題打卡 題目描述 解題思路 今天是抄答案而且還抄的迷迷糊糊的一天 知道要這樣做,但是仔細去想為什麼是這樣的,又說不出個所以然 首先在陣列左右兩端新增虛擬氣球節點,是不能被戳破的,這樣能方便處理邊界,而且保證總是有三個氣球相乘。然後注意動態規劃的順序,要從區間右邊開...
動態規劃 擊爆氣球 Burst Balloons
2018 10 03 19 29 43 問題描述 問題求解 很有意思的題目,首先想到的是暴力遍歷解空間,當然也用到了memo,可惜還是tle,因為時間複雜度確實有點過高了,應該是o n mapmap new hashmap public int maxcoins int nums private i...
leetcode 312 戳氣球(動態規劃)
有 n 個氣球,編號為0 到 n 1,每個氣球上都標有乙個數字,這些數字存在陣列nums中。現在要求你戳破所有的氣球。每當你戳破乙個氣球i時,你可以獲得nums left nums i nums right 個硬幣。這裡的left和right代表和i相鄰的兩個氣球的序號。注意當你戳破了氣球 i 後,...