546 Remove Boxes 移除盒子
给定一些不同颜色的盒子,以不同的正整数表示。
消去连续相同颜色的盒子,直到全部消除完毕为止。每一次消去可以得到k * k分(k为消去盒子的个数, k  >= 1)。
计算可以得到的最大得分。
注意:盒子的数量n不超过100。
详见:https://leetcode.com/problems/remove-boxes/description/
C++:
class Solution {
public:
    int removeBoxes(vector<int>& boxes)
    {
        int n = boxes.size();
        int dp[100][100][100] = {0};
        return helper(boxes, 0, n - 1, 0, dp);
    }
    int helper(vector<int>& boxes, int i, int j, int k, int dp[100][100][100])
    {
        if (j < i)
        {
            return 0;
        }
        if (dp[i][j][k] > 0)
        {
            return dp[i][j][k];
        }
        int res = (1 + k) * (1 + k) + helper(boxes, i + 1, j, 0, dp);
        for (int m = i + 1; m <= j; ++m)
        {
            if (boxes[m] == boxes[i])
            {
                res = max(res, helper(boxes, i + 1, m - 1, 0, dp) + helper(boxes, m, j, k + 1, dp));
            }
        }
        return dp[i][j][k] = res;
    }
};
参考:http://www.cnblogs.com/grandyang/p/6850657.html
546 Remove Boxes 移除盒子的更多相关文章
- [LeetCode] Remove Boxes 移除盒子
		Given several boxes with different colors represented by different positive numbers. You may experie ... 
- 546. Remove Boxes
		Given several boxes with different colors represented by different positive numbers. You may experie ... 
- Leetcode 546. Remove Boxes
		题目链接: https://leetcode.com/problems/remove-boxes/description/ 问题描述 若干个有序排列的box和它们的颜色,每次可以移除若干个连续的颜色相 ... 
- 第十周 Leetcode 546. Remove Boxes (HARD) 记忆化搜索
		Leetcode546 给定一个整数序列,每次删除其中连续相等的子序列,得分为序列长度的平方 求最高得分. dp方程如下: memo[l][r][k] = max(memo[l][r][k], dfs ... 
- [Swift]LeetCode546. 移除盒子 | Remove Boxes
		Given several boxes with different colors represented by different positive numbers. You may experie ... 
- Java实现 LeetCode 546 移除盒子(递归,vivo秋招)
		546. 移除盒子 给出一些不同颜色的盒子,盒子的颜色由数字表示,即不同的数字表示不同的颜色. 你将经过若干轮操作去去掉盒子,直到所有的盒子都去掉为止.每一轮你可以移除具有相同颜色的连续 k 个盒子( ... 
- Leetcode 546.移除盒子
		移除盒子 给出一些不同颜色的盒子,盒子的颜色由数字表示,即不同的数字表示不同的颜色.你将经过若干轮操作去去掉盒子,直到所有的盒子都去掉为止.每一轮你可以移除具有相同颜色的连续 k 个盒子(k > ... 
- 【转载】C#通过Remove方法移除DataTable中的某一列数据
		在C#中的Datatable数据变量的操作过程中,有时候我们需要移除当前DataTable变量中的某一列的数据,此时我们就需要使用到DataTable变量内部的Columns属性变量的Remove方法 ... 
- 【转载】C#中List集合使用Remove方法移除指定的对象
		在C#的List集合操作中,有时候需要将特定的对象或者元素移除出List集合序列中,此时可使用到List集合的Remove方法,Remove方法的方法签名为bool Remove(T item),it ... 
随机推荐
- 手写Future模式
			根据前面我所说的Futrue模式,手写一个: 分别对应的Java代码,大家拿来参考: package FutureTest; //公共data数据接口 public abstract class Da ... 
- mediaxyz访谈录:ffmpeg的码率控制
			mediaxyz是一位研究ffmpeg有三年的高人了,这几天一直在折腾ffmpeg中的x264,就是不知道该如何控制码率,主要是参数太多,也不知道该如何设置,在 google上search了一下,这方 ... 
- 【错误信息】springMVC No mapping found for HTTP request with URI
			出现这个问题的原因是在web.xml中配置错了: 
- Web前端行业的了解
			即将从事Web前端的工作的 先对即将从事的行业有个了解. Web前端发展史: 第一个网页诞生于90年代初,早期的网页除了一些小图片和毫无布局可言的标题段落,其全由文字构成.然而随着时代的进步,互联网的 ... 
- python-pycharm 设置默认代码及注释
			pycharm 
- POJ3624(01背包:滚动 实现)
			Charm Bracelet Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 30417 Accepted: 13576 ... 
- Maven下org.junit.Test无法使用
			原文地址: https://blog.csdn.net/allenChenZhiMing/article/details/81412983 我在看Spring in action(第四版)的时候,看到 ... 
- HTML5的LocalStorage实现记住密码
			HTML5 提供了两种在客户端存储数据的新方法: localStorage - 没有时间限制的数据存储 sessionStorage - 针对一个 session 的数据存储 localStorage ... 
- Log4j1的使用与log4j.properties的配置
			这里介绍Log4j1(即Log4j 1.x版本),这里以普通的Java项目为例,用eclipse编写,项目结构如下图所示: 该项目主要包括: java文件:Log4jv1Util 以及 Log4jv1 ... 
- 【Linux学习】Linux系统管理1—进程管理
			Linux系统管理1-进程管理 一.Linux的三种进程 Linux包括3中不同类型的进程: 交互进程:由一个shell启动的进程.交互进程可以在前后台运行 批处理进程:该进程和终端无联系,是一个进程 ... 
