[Swift]LeetCode312. 戳气球 | Burst Balloons
Given? Find the maximum coins you can collect by bursting the balloons wisely. Note:
Example: Input: Output: nums = [3,1,5,8] --> [3,8] --> [3,8] --> [8] --> [] ? coins = 3*1*5 + 3*5*8 + 1*3*8 + 1*8*1 = 167[3,8]167 Explanation: 有? 现在要求你戳破所有的气球。每当你戳破一个气球? 求所能获得硬币的最大数量。 说明:
示例: 输入: 输出: nums = [3,8] --> [8] --> [] ? coins = 3*1*5 + 3*5*8 + 1*3*8 + 1*8*1 = 167[3,8]167 解释: 188 ms 1 class Solution { 2 func maxCoins(_ nums: [Int]) -> Int { 3 if nums.isEmpty { 4 return 0 5 } 6 if nums.count < 2 { 7 return nums[0] 8 } 9 let coinNums = [1] + nums + [1] 10 var coins = Array(repeating: Array(repeating: 0,count: coinNums.count),count: coinNums.count) 11 let count = coinNums.count 12 for i in 2..<count { 13 for j in 0..<count-i { 14 for k in j+1..<j+i { 15 coins[j][j+i] = max(coins[j][j+i],coins[j][k] + coins[k][j+i] + coinNums[k] * coinNums[j] * coinNums[j+i]) 16 } 17 } 18 } 19 20 return coins[0][coinNums.count-1] 21 } 22 } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |