#4860. 戳气球

戳气球

题目描述

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

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

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

输入格式

第一行一个整数 nn

第二行 nn 个空格分开的整数表示数组 numsnums 的各个元素。

输出格式

一行一个整数表示答案。

示例 1

4
3 1 5 8
167

解释:

nums = [3,1,5,8] --> [3,5,8] --> [3,8] --> [8] --> []

coins = 315 + 358 + 138 + 181 = 167

示例 2:

2
1 5
10

提示:

  • n==nums.lengthn == nums.length
  • 1<=n<=3001 <= n <= 300
  • 0<=nums[i]<=1000 <= nums[i] <= 100

SOURCE

戳气球