【问题描述】[困难]

【解答思路】

1. 递归 动态规划

class Solution {public int removeBoxes(int[] boxes) {int[][][] dp = new int[100][100][100];return calculatePoints(boxes, dp, 0, boxes.length - 1, 0);}public int calculatePoints(int[] boxes, int[][][] dp, int l, int r, int k) {if (l > r) return 0;if (dp[l][r][k] != 0) return dp[l][r][k];//优化 找到相等的就切 while (r > l && boxes[r] == boxes[r - 1]) {r--;k++;}dp[l][r][k] = calculatePoints(boxes, dp, l, r - 1, 0) + (k + 1) * (k + 1);for (int i = l; i < r; i++) {if (boxes[i] == boxes[r]) {dp[l][r][k] = Math.max(dp[l][r][k], calculatePoints(boxes, dp, l, i, k + 1) + calculatePoints(boxes, dp, i + 1, r - 1, 0));}}return dp[l][r][k];}
}

细节理解 通俗易解的图 要把中间那块抽出来 单独递归

图解二 宏观理解



【总结】

1. 递归+动态规划 锻炼抽象思维
2.难难难

转载链接:https://leetcode-cn.com/problems/remove-boxes/solution/yi-chu-he-zi-by-leetcode-solution/
参考链接:https://leetcode-cn.com/problems/remove-boxes/solution/guan-fang-fang-fa-2ji-yi-hua-sou-suo-dong-hua-tu-j/
参考链接:https://leetcode-cn.com/problems/remove-boxes/solution/guan-fang-ti-jie-de-tu-jie-by-xiayilive/

[Leetcode][第546题][JAVA][移除盒子][递归][动态规划]相关推荐

  1. LeetCode第 546 题:移除盒子(C++) (弃)

    546. 移除盒子 - 力扣(LeetCode) 典型的动态规划最大值问题,单次移除的盒子个数(k)越多,得到的积分 k*k 就会越大,所以每次操作肯定会把连续的相同颜色的盒子都去掉. 注意: 这题还 ...

  2. [Leetcode][第104题][JAVA][二叉树的最大深度][递归][BFS]

    [问题描述][简单] [解答思路] 1. 递归 终止条件/基本情况 root ==null 递推关系 max(l,r)+1 时间复杂度:O(N) 空间复杂度:O(height) class Solut ...

  3. 「力扣」第 546 题:移除盒子(很难的动态规划问题)

    参考的题解都已经在代码中注明了. 看这篇题解得到思路: https://leetcode-cn.com/problems/remove-boxes/solution/guan-fang-fang-fa ...

  4. [Leetcode][第410题][JAVA][分割数组的最大值][动态规划][二分]

    [问题描述][中等] [解答思路] 1. 动态规划 第 1 步:设计状态 令 f[i][j] 表示将数组的前 i 个数分割为 j 段所能得到的最大连续子数组和的最小值. ( i ≥ j ) 第 2 步 ...

  5. [Leetcode][第120题][JAVA][三角形最小路径和][动态规划][递归]

    [问题描述][中等] [解答思路] 1. 动态规划思路一 自上而下 第 1 步:设计状态 f[i][j] 表示从三角形顶部走到位置 (i,j) 的最小路径和 位置(i,j) 指的是三角形中第 i 行第 ...

  6. [剑指offer]面试题第[63]题[Leetcode][第121题][JAVA][买卖股票的最佳时机][动态规划][暴力]

    [问题描述][简单] [解答思路] 1. 暴力 时间复杂度:O(N^2) 空间复杂度:O(1) public class Solution {public int maxProfit(int pric ...

  7. [Leetcode][第32题][JAVA][最长有效括号][动态规划][栈][正向逆向结合]

    [问题描述][困难] 给定一个只包含 '(' 和 ')' 的字符串,找出最长的包含有效括号的子串的长度.示例 1:输入: "(()" 输出: 2 解释: 最长有效括号子串为 &qu ...

  8. [Leetcode][第718题][JAVA][最长重复子数组][动态规划][滑动窗口][暴力]

    [问题描述][中等] 给两个整数数组 A 和 B ,返回两个数组中公共的.长度最长的子数组的长度.示例 1:输入: A: [1,2,3,2,1] B: [3,2,1,4,7] 输出: 3 解释: 长度 ...

  9. [Leetcode][第111题][JAVA][BFS][二叉树的最小深度][BFS][递归]

    [问题描述][简单] [解答思路] 1. 递归 自下而上 基本情况/结束条件 : 叶子节点的定义是左孩子和右孩子都为 null 时叫做叶子节点 当 root 节点左右孩子都为空时,返回 1 当 roo ...

最新文章

  1. 序列密码体制——密码学笔记(三)
  2. 【Spring注解系列04】@Condition条件注解
  3. 领域应用 | 中医临床术语系统
  4. 视图插入数据_用EXCEL作数据分析--招聘信息
  5. PowerDesigner15连接Oracle数据库并导出Oracle的表结构
  6. break 和 continue 语句, 以及循环中的 else 子句
  7. 夺命雷公狗---DEDECMS----23dedecms修改内容页面展示的信息
  8. 深度学习pytorch基础入门教程(1小时)-自动梯度
  9. 算法学习:最短路径(Floyd、Bellman-ford、Dijkstra)
  10. POJ 3744 Scout YYF I(矩阵快速幂优化+概率dp)
  11. excel vba 去重
  12. 线程池引发的故障到底该怎么排查?
  13. Illegal mix of collations
  14. 培养创造性思维的20个技巧!
  15. 第二十二章 opengl之高级OpenGL(几何着色器)
  16. 知其然不知其所以然 系列
  17. 百度地图在html上自定义画线,以百度地图为底图如何在上面画线?
  18. 计算机应用基础教师授课视频,利用微课促进《计算机应用基础》教学的有效途径...
  19. ThinkPad开机停留在boot menu界面、进不了系统的解决方法
  20. Google前员工创办社交推荐引擎Stamped,已获A轮投资

热门文章

  1. CommonJs、AMD、CMD模块化规范
  2. 01-subgradients_notes
  3. MDI窗体简单方法(调用,闪屏)
  4. x264编码参数大测试:03 subme与crf(c)
  5. HK-2000 数采仪系统说明之 7.HK7710 DTU 简单配置说明
  6. android开机自动打开微信小程序,Android APP拉起小程序界面 (微信未启动 打不开)...
  7. 基于Docker搭建RabbitMQ(多图)
  8. 考研计算机专业课统考吗,【计算机考研】你了解计算机统考408吗?
  9. 基于java的程序启动出错Could not create the Java virtual machine
  10. sql 简单加密函数