Burst Balloons
You are given n balloons, indexed from 0 to n - 1. Each balloon is painted with a number represented by an array nums. You are asked to burst all the balloons.
If you burst the i^th balloon, you will get nums[i - 1] * nums[i] * nums[i + 1] coins. If i - 1 or i + 1 goes out of bounds of the array, then treat it as if there is a balloon with a 1 painted on it.
Return the maximum coins you can collect by bursting the balloons wisely.
Example 1
Input
nums = [3,1,5,8]Output
167Bursting the balloons in the shown order gives
3*1*5 + 3*5*8 + 1*3*8 + 1*8*1 = 167 coins, which is the maximum.Example 2
Input
nums = [1,5]Output
10Bursting the two balloons can collect at most 10 coins.
Constraints
- n == nums.length
- 1 <= n <= 300
- 0 <= nums[i] <= 100