[LeetCode] Remove Boxes
来源:互联网 发布:惠州乐知英语 编辑:程序博客网 时间:2024/06/05 20:15
Given several boxes with different colors represented by different positive numbers.
You may experience several rounds to remove boxes until there is no box left. Each time you can choose some continuous boxes with the same color (composed of k boxes, k >= 1), remove them and get k*k
points.
Find the maximum points you can get.
Example 1:
Input:
[1, 3, 2, 2, 2, 3, 4, 3, 1]Output:
23Explanation:
[1, 3, 2, 2, 2, 3, 4, 3, 1] ----> [1, 3, 3, 4, 3, 1] (3*3=9 points) ----> [1, 3, 3, 3, 1] (1*1=1 points) ----> [1, 1] (3*3=9 points) ----> [] (2*2=4 points)
好难的一道题,第二遍做还是要在看一便其他人的解法
public class Solution {public int removeBoxes(int[] boxes) {dp=new int[boxes.length][boxes.length][boxes.length];return dfs(0,boxes.length-1,0,boxes);}int[][][] dp;public int dfs(int i,int j,int k,int[] boxes){if(i>j) return 0;if(dp[i][j][k]!=0) return dp[i][j][k];while(i<=j-1&&boxes[j]==boxes[j-1]){k++;j--;}int re=dfs(i,j-1,0,boxes)+(k+1)*(k+1);//对第j个单独处理的情况for(int t=i;t<j;t++){//对第j个合并的情况if(boxes[t]==boxes[j]){re=Math.max(re, dfs(i,t,k+1,boxes)+dfs(t+1,j-1,0,boxes));}}dp[i][j][k]=re;return re;}}
.
阅读全文
1 0
- LeetCode Week8: Remove boxes
- [LeetCode] Remove Boxes
- leetcode-Remove Boxes
- leetcode 546. Remove Boxes
- [leetcode]546. Remove Boxes
- [Leetcode] 546. Remove Boxes 解题报告
- Remove Boxes
- leetcode 546. Remove Boxes 很复杂的DP
- 546. Remove Boxes
- 546. Remove Boxes (HARD)
- Leetcode546. Remove Boxes
- Leedcode 19 Remove Boxes
- 546. Remove Boxes
- 546. Remove Boxes
- Leetcode546. Remove Boxes(Hard)
- Boxes
- Add or remove buttons from message dialog boxes
- LeetCode:Remove Element
- java定时器时间配置
- angular2实战笔记--组件开发
- vs"链接器工具错误 LNK2026 XXX模块对于SAFESEH 映像是不安全的"
- 反射:类的加载机制
- Python爬取百度贴吧帖子
- [LeetCode] Remove Boxes
- 我与Oracle数据库不得不说的那些事-错误总结篇
- Win7 Python2.7 安装教程
- 5月英语总结
- React学习笔记----如何在html页面中使用react
- 06-3-系统命令初步
- spring cloud注册服务
- mac 中python的anaconda包管理
- Javascript之数组操作方法整理