戳气球
困难字节跳动动态规划
题目描述
有 n 个气球,每个气球上标有一个数字。每次戳破一个气球,你将获得 nums[left] * nums[i] * nums[right] 个硬币,其中 left 和 right 是相邻气球的索引(不存在则视为值为 1)。求能获得硬币的最大数量。关键思路是逆向思维:考虑最后被戳破的气球,使用区间 DP,令 dp[i][j] 表示戳破开区间 (i,j) 内所有气球能获得的最大硬币数。
示例
输入:
nums = [3,1,5,8]输出:
167solution.ts
输出结果
点击「运行代码」按钮查看结果...