[Leetcode][第546题][JAVA][移除盒子][递归][动态规划]
【问题描述】[困难]
【解答思路】
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][移除盒子][递归][动态规划]相关推荐
- LeetCode第 546 题:移除盒子(C++) (弃)
546. 移除盒子 - 力扣(LeetCode) 典型的动态规划最大值问题,单次移除的盒子个数(k)越多,得到的积分 k*k 就会越大,所以每次操作肯定会把连续的相同颜色的盒子都去掉. 注意: 这题还 ...
- [Leetcode][第104题][JAVA][二叉树的最大深度][递归][BFS]
[问题描述][简单] [解答思路] 1. 递归 终止条件/基本情况 root ==null 递推关系 max(l,r)+1 时间复杂度:O(N) 空间复杂度:O(height) class Solut ...
- 「力扣」第 546 题:移除盒子(很难的动态规划问题)
参考的题解都已经在代码中注明了. 看这篇题解得到思路: https://leetcode-cn.com/problems/remove-boxes/solution/guan-fang-fang-fa ...
- [Leetcode][第410题][JAVA][分割数组的最大值][动态规划][二分]
[问题描述][中等] [解答思路] 1. 动态规划 第 1 步:设计状态 令 f[i][j] 表示将数组的前 i 个数分割为 j 段所能得到的最大连续子数组和的最小值. ( i ≥ j ) 第 2 步 ...
- [Leetcode][第120题][JAVA][三角形最小路径和][动态规划][递归]
[问题描述][中等] [解答思路] 1. 动态规划思路一 自上而下 第 1 步:设计状态 f[i][j] 表示从三角形顶部走到位置 (i,j) 的最小路径和 位置(i,j) 指的是三角形中第 i 行第 ...
- [剑指offer]面试题第[63]题[Leetcode][第121题][JAVA][买卖股票的最佳时机][动态规划][暴力]
[问题描述][简单] [解答思路] 1. 暴力 时间复杂度:O(N^2) 空间复杂度:O(1) public class Solution {public int maxProfit(int pric ...
- [Leetcode][第32题][JAVA][最长有效括号][动态规划][栈][正向逆向结合]
[问题描述][困难] 给定一个只包含 '(' 和 ')' 的字符串,找出最长的包含有效括号的子串的长度.示例 1:输入: "(()" 输出: 2 解释: 最长有效括号子串为 &qu ...
- [Leetcode][第718题][JAVA][最长重复子数组][动态规划][滑动窗口][暴力]
[问题描述][中等] 给两个整数数组 A 和 B ,返回两个数组中公共的.长度最长的子数组的长度.示例 1:输入: A: [1,2,3,2,1] B: [3,2,1,4,7] 输出: 3 解释: 长度 ...
- [Leetcode][第111题][JAVA][BFS][二叉树的最小深度][BFS][递归]
[问题描述][简单] [解答思路] 1. 递归 自下而上 基本情况/结束条件 : 叶子节点的定义是左孩子和右孩子都为 null 时叫做叶子节点 当 root 节点左右孩子都为空时,返回 1 当 roo ...
最新文章
- 序列密码体制——密码学笔记(三)
- 【Spring注解系列04】@Condition条件注解
- 领域应用 | 中医临床术语系统
- 视图插入数据_用EXCEL作数据分析--招聘信息
- PowerDesigner15连接Oracle数据库并导出Oracle的表结构
- break 和 continue 语句, 以及循环中的 else 子句
- 夺命雷公狗---DEDECMS----23dedecms修改内容页面展示的信息
- 深度学习pytorch基础入门教程(1小时)-自动梯度
- 算法学习:最短路径(Floyd、Bellman-ford、Dijkstra)
- POJ 3744 Scout YYF I(矩阵快速幂优化+概率dp)
- excel vba 去重
- 线程池引发的故障到底该怎么排查?
- Illegal mix of collations
- 培养创造性思维的20个技巧!
- 第二十二章 opengl之高级OpenGL(几何着色器)
- 知其然不知其所以然 系列
- 百度地图在html上自定义画线,以百度地图为底图如何在上面画线?
- 计算机应用基础教师授课视频,利用微课促进《计算机应用基础》教学的有效途径...
- ThinkPad开机停留在boot menu界面、进不了系统的解决方法
- Google前员工创办社交推荐引擎Stamped,已获A轮投资
热门文章
- CommonJs、AMD、CMD模块化规范
- 01-subgradients_notes
- MDI窗体简单方法(调用,闪屏)
- x264编码参数大测试:03 subme与crf(c)
- HK-2000 数采仪系统说明之 7.HK7710 DTU 简单配置说明
- android开机自动打开微信小程序,Android APP拉起小程序界面 (微信未启动 打不开)...
- 基于Docker搭建RabbitMQ(多图)
- 考研计算机专业课统考吗,【计算机考研】你了解计算机统考408吗?
- 基于java的程序启动出错Could not create the Java virtual machine
- sql 简单加密函数