当前位置:网站首页>LeetCode 312. 戳气球 每日一题
LeetCode 312. 戳气球 每日一题
2022-07-07 15:32:00 【@小红花】
问题描述
有 n 个气球,编号为0 到 n - 1,每个气球上都标有一个数字,这些数字存在数组 nums 中。
现在要求你戳破所有的气球。戳破第 i 个气球,你可以获得 nums[i - 1] * nums[i] * nums[i + 1] 枚硬币。 这里的 i - 1 和 i + 1 代表和 i 相邻的两个气球的序号。如果 i - 1或 i + 1 超出了数组的边界,那么就当它是一个数字为 1 的气球。
求所能获得硬币的最大数量。
示例 1:
输入:nums = [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:输入:nums = [1,5]
输出:10
提示:
n == nums.length
1 <= n <= 300
0 <= nums[i] <= 100来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/burst-balloons
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
Java
class Solution {
public int maxCoins(int[] nums) {
int n = nums.length;
int[] arr = new int[n + 2];
arr[0] = arr[n + 1] = 1;
for(int i = 0;i < n;i++) arr[i + 1] = nums[i];
int[][] dp = new int[n + 2][n + 2];
for(int i = n - 1;i >= 0;i--){
for(int j = i + 2;j <= n + 1;j++){
//先找到两个边界i和j,然后戳他们之间的气球,开区间
for(int k = i + 1;k < j;k++){
//编号i到编号j最大得分为:编号i到编号k的得分+编号k到编号j的得分+戳编号为k的得分
dp[i][j] = Math.max(
dp[i][j],
dp[i][k] + dp[k][j] + arr[i] * arr[k] * arr[j]
);
}
}
}
//编号为1到编号为n的气球最高得分
return dp[0][n + 1];
}
}边栏推荐
- 预售17.9万,恒驰5能不能火?产品力在线,就看怎么卖
- [summary of knowledge] summary of notes on using SVN in PHP
- Laravel5.1 Routing - routing packets
- logback.xml配置不同级别日志,设置彩色输出
- Prometheus API deletes all data of a specified job
- [designmode] flyweight pattern
- 【DesignMode】模板方法模式(Template method pattern)
- 预测——灰色预测
- 记录Servlet学习时的一次乱码
- Direct dry goods, 100% praise
猜你喜欢

谈谈 SAP 系统的权限管控和事务记录功能的实现

Imitate the choice of enterprise wechat conference room

Binary search tree (features)

华东师大团队提出,具有DNA调控电路的卷积神经网络的系统分子实现

null == undefined

Have fun | latest progress of "spacecraft program" activities

"The" "PIP" "entry cannot be recognized as the name of a cmdlet, function, script file, or runnable program."

记录Servlet学习时的一次乱码

QT中自定义控件的创建到封装到工具栏过程(二):自定义控件封装到工具栏

The difference and working principle between compiler and interpreter
随机推荐
dapp丨defi丨nft丨lp单双币流动性挖矿系统开发详细说明及源码
The differences between exit, exit (0), exit (1), exit ('0 '), exit ('1'), die and return in PHP
数据中台落地实施之法
Balanced binary tree (AVL)
直接上干货,100%好评
LocalStorage和SessionStorage
Sort out several important Android knowledge and advanced Android development interview questions
AutoLISP series (3): function function 3
二叉搜索树(基操篇)
在哪个期货公司开期货户最安全?
Imitate the choice of enterprise wechat conference room
23. 合并K个升序链表-c语言
node:504报错
射线与OBB相交检测
字节跳动Android面试,知识点总结+面试题解析
C语言进阶——函数指针
[medical segmentation] attention Unet
Personal notes of graphics (4)
logback.xml配置不同级别日志,设置彩色输出
Laravel service provider instance tutorial - create a service provider test instance