Leetcode546

给定一个整数序列,每次删除其中连续相等的子序列,得分为序列长度的平方 求最高得分。

dp方程如下:

memo[l][r][k] = max(memo[l][r][k], dfs(boxes,memo,l,i,k+1) + dfs(boxes,memo,i+1,r-1,0));

意思是在序列的l-r部分后接k长度的 r值序列 所能得到的最大得分。

代码很简单

class Solution {
public:
int removeBoxes(vector<int>& boxes) {
int n=boxes.size();
int memo[100][100][100] = {0};
return dfs(boxes,memo,0,n-1,0);
} int dfs(vector<int>& boxes,int memo[100][100][100], int l,int r,int k){
if (l>r) return 0;
if (memo[l][r][k]!=0) return memo[l][r][k]; while (r>l && boxes[r]==boxes[r-1]) {r--;k++;}
memo[l][r][k] = dfs(boxes,memo,l,r-1,0) + (k+1)*(k+1);
for (int i=l; i<r; i++){
if (boxes[i]==boxes[r]){
memo[l][r][k] = max(memo[l][r][k], dfs(boxes,memo,l,i,k+1) + dfs(boxes,memo,i+1,r-1,0));
}
}
return memo[l][r][k];
}
};

  

最新文章

  1. [Modern OpenGL系列(四)]在OpenGL中使用Shader
  2. ORA-12520: TNS:listener could not find available handler for requested type of server
  3. 在SQL Server 2014里可更新的列存储索引 (Updateable Column Store Indexes)
  4. Kotlin语法(其他)
  5. JS、ActiveXObject、Scripting.FileSystemObject
  6. BFC——一个我们容易忽视掉的布局神器
  7. WordPress 4.0 “Benny” 正式发布
  8. C# 使用TimeSpan计算两个时间差
  9. 洛谷1890 gcd区间
  10. 《前端之路》之 前端图片 类型 &amp; 优化 &amp; 预加载 &amp; 懒加载 &amp; 骨架屏
  11. Codeforces1099D.Sum in the tree(贪心)
  12. anaconda4.2.0
  13. HDU 6088 Rikka with Rock-paper-scissors(NTT+欧拉函数)
  14. day2_抓包-抓包工具Charles
  15. 第1章 CLR的执行模型
  16. [Uliweb]-URL映射
  17. yum只下载不安装dokcer
  18. HDU4864 Task
  19. 经典ARP协议讲解,一定要看
  20. Node.js frameworks

热门文章

  1. 指定PING的网卡
  2. HDU 2475 Box
  3. Leetcode 204计数质数
  4. CodeForces 159E
  5. hdu 5073 推公式相邻质心转换
  6. 爬虫(1):requests模块
  7. JavaScript判断页面是否已经加载完毕
  8. tomcat会自动解压webapps目录下的war包
  9. 必测的支付漏洞(一)——使用fiddler篡改支付金额
  10. PLSQL Developer来实现不同数据库的表结构以及表数据同步