如何解决LeetCode 312题:戳气球(难度:困难)的算法问题?
- 内容介绍
- 文章标签
- 相关推荐
本文共计705个文字,预计阅读时间需要3分钟。
分治 + 动态规划,dp[i][j]=maxCoins(nums[i]) + nums[j] + nums[i-1],表示从第i个气球到第j个气球的最大值。我们所求的答案就是ans=dp[1][n]。一、题目大意:有n个气球,每个气球都有一个分数值,我们需要通过选择一些气球并使其爆破来获得最高分数。爆破一个气球会获得该气球的分数值,并且如果这个气球相邻的气球被爆破,那么这两个气球的分数值也会被加到总分中。我们的目标是选择一组气球,使得总分最大。
标签: 分治
leetcode.cn/problems/burst-balloons
有 n 个气球,编号为0 到 n - 1,每个气球上都标有一个数字,这些数字存在数组nums中。
现在要求你戳破所有的气球。戳破第 i 个气球,你可以获得nums[i - 1] * nums[i] * nums[i + 1] 枚硬币。这里的 i - 1 和 i + 1 代表和i相邻的两个气球的序号。如果 i - 1或 i + 1 超出了数组的边界,那么就当它是一个数字为 1 的气球。
求所能获得硬币的最大数量。
本文共计705个文字,预计阅读时间需要3分钟。
分治 + 动态规划,dp[i][j]=maxCoins(nums[i]) + nums[j] + nums[i-1],表示从第i个气球到第j个气球的最大值。我们所求的答案就是ans=dp[1][n]。一、题目大意:有n个气球,每个气球都有一个分数值,我们需要通过选择一些气球并使其爆破来获得最高分数。爆破一个气球会获得该气球的分数值,并且如果这个气球相邻的气球被爆破,那么这两个气球的分数值也会被加到总分中。我们的目标是选择一组气球,使得总分最大。
标签: 分治
leetcode.cn/problems/burst-balloons
有 n 个气球,编号为0 到 n - 1,每个气球上都标有一个数字,这些数字存在数组nums中。
现在要求你戳破所有的气球。戳破第 i 个气球,你可以获得nums[i - 1] * nums[i] * nums[i + 1] 枚硬币。这里的 i - 1 和 i + 1 代表和i相邻的两个气球的序号。如果 i - 1或 i + 1 超出了数组的边界,那么就当它是一个数字为 1 的气球。
求所能获得硬币的最大数量。

