#2116. 戳气球

戳气球

问题描述

nn 个气球,编号为 00n1n - 1,每个气球上都标有一个数字,这些数字存在数组 nums 中。

现在要求你戳破所有的气球。戳破第 ii 个气球,你可以获得 nums[i - 1] * nums[i] * nums[i + 1] 枚硬币。 这里的 i - 1i + 1 代表和 ii 相邻的两个气球的序号。 如果 i - 1i + 1 超出了数组的边界,那么就当它是一个数字为 11 的气球。

求所能获得硬币的最大数量。

输入格式

  • nums 是一个整数数组,表示气球上的数字。

输出格式

  • 返回你能获得的最多硬币数。

示例

示例 1:

输入:

4
3 1 5 8

输出:

167

解释:

nums = [3,1,5,8] --> [3,5,8] --> [3,8] --> [8] --> []
coins = 3*1*5 + 3*5*8 + 1*3*8 + 1*8*1 = 167

示例 2:

输入:

2
1 5

输出:

10

提示

  • n==nums.lengthn == nums.length