Leetcode 312. 戳气球(经典区间dp)
为了避免边界问题,我们重新开一个数组,在两个端点加入哨兵1。此时数组下标为0到n+1
状态的定义如下,f[i][j] 表示将区间[i+1,j-1]的气球全部戳爆的最大收益。
我们要求的答案就是f[0][n+1] 将1到n个气球全部戳爆的最大收益。
一般的f[i][j] = max{f[i][k] + f[k][j] + nums[i]* nums[k] * nums[j] }
递推的时候,采用标准的区间递推的方式,最外层递推区间长度,这里区间最小长度为3
class Solution {
public:int maxCoins(vector<int>& nums) {int n = nums.size();vector<int> a(n+2, 1); // 在左右两边补上一个哨兵for(int i = 1; i <= n; i++){a[i] = nums[i - 1];}// f[i][j] 表示将区间[i + 1, j - 1]全部打掉所获得得最大收益。vector<vector<int>> f(n + 2, vector<int>(n + 2));for(int len = 3; len <= n + 2; len++){for(int i = 0; i + len - 1 <= n + 1; i++){int j = i + len - 1;for(int k = i + 1; k < j; k++){f[i][j] = max(f[i][j], f[i][k] + f[k][j] + a[i] * a[k] * a[j]);}}}return f[0][n + 1];}
};
Leetcode 312. 戳气球(经典区间dp)相关推荐
- 312. 戳气球(区间dp)
链接:https://leetcode-cn.com/problems/burst-balloons/ 首先这个长度为500的范围可以猜测出是O(n^3)区间dp 这里主要讲述为什么状态定义要定义成开 ...
- Leetcode.312 戳气球
题目链接 Leetcode.312 戳气球 题目描述 有 n个气球,编号为0到 n - 1,每个气球上都标有一个数字,这些数字存在数组 nums中. 现在要求你戳破所有的气球.戳破第 i 个气球,你可 ...
- LeetCode 312.戳气球
LeetCode 312.戳气球 有 n 个气球,编号为0 到 n - 1,每个气球上都标有一个数字,这些数字存在数组 nums 中. 现在要求你戳破所有的气球.戳破第 i 个气球,你可以获得 num ...
- leetcode: 312. 戳气球
312. 戳气球 来源:力扣(LeetCode) 链接: https://leetcode.cn/problems/burst-balloons/ 有 n 个气球,编号为0 到 n - 1,每个气球上 ...
- LeetCode·312.戳气球·动态规划
312.戳气球 题目 示例 思路 首先必须要说明,这个题目的状态转移方程真的比较巧妙,所以说如果你看了题目之后完全没有思路恰恰是正常的.虽然最优答案不容易想出来,但基本的思路分析是我们应该力求做到的. ...
- Java实现 LeetCode 312 戳气球
312. 戳气球 有 n 个气球,编号为0 到 n-1,每个气球上都标有一个数字,这些数字存在数组 nums 中. 现在要求你戳破所有的气球.每当你戳破一个气球 i 时,你可以获得 nums[left ...
- Leetcode 312. 戳气球
题目 首先必须要说明,这个题目的状态转移方程真的比较巧妙,所以说如果你看了题目之后完全没有思路恰恰是正常的.虽然最优答案不容易想出来,但基本的思路分析是我们应该力求做到的.所以本文会先分析一下常规思路 ...
- LeetCode 312. 戳气球(DP,难)
1. 题目 有 n 个气球,编号为0 到 n-1,每个气球上都标有一个数字,这些数字存在数组 nums 中. 现在要求你戳破所有的气球.每当你戳破一个气球 i 时,你可以获得 nums[left]∗n ...
- LeetCode 312. 戳气球(Java)
题目 有 n 个气球,编号为0 到 n - 1,每个气球上都标有一个数字,这些数字存在数组 nums 中. 现在要求你戳破所有的气球.戳破第 i 个气球,你可以获得 nums[i - 1] * num ...
最新文章
- 白话Elasticsearch67-不随意调节jvm和thread pool的原因jvm和服务器内存分配的最佳实践
- 在新浪潮中,服务教育是你的竞争利器
- django 中间件的使用
- 实现 VC 最小化到 托盘
- 双十一要来了,设计没思路看看案例
- 百度万亿流量的转发引擎 BFE 开源了!
- linux下 根目录扩展
- nyoj936蚂蚁的难题(X)
- macpro的IDEA常用快捷键~持续更新
- php中的字典数据类型,python中字典数据类型常用操作
- 视频水印怎么去除?超简单 千万不要错过
- 最新配资系统源码完美运行版+策略买点/A股系统
- android 3d动画绘制,Iyan 3d app
- 首马破四-IT男的健康分享
- 【夜读】让自己更幸福的8件小事
- 如何彻底关闭系统还原功能和删除系统还原点
- 中国煤制油市场产能需求与发展策略规划报告2022版
- Zookeeper C API 官方示例程序
- SPARK SHUFFLE中 ShuffleId BlockManagerId 以及 与ESS(External Shuffle Server)交互
- java.lang.NoSuchMethodException异常处理方法
热门文章
- python爬虫:搜狗微信公众号文章信息的采集(https://weixin.sogou.com/),保存csv文件
- CSDN博客论坛——读好书,畅想“我的IT成长路”活动【已完成】
- linux uwsgi 非root,nginx – 只能用root运行uwsgi
- (附源码)基于java的校园二手书籍交易平台 毕业设计131558
- webdriver options常用参数
- 小米8se怎么解屏幕锁_小米8 SE解锁system系统分区教程_小米8SE如何一键解锁系统分区...
- Raft 实现日志复制同步
- java.lang.ClassNotFoundException: org.springframework.boot.bind.RelaxedDataBinder
- React 源码系列 | React Context 详解
- 《网络攻防》 恶意代码分析