LeetCode要每天都刷噢
1. 记录刷LeetCode时的笔记感悟___________________________________
2. Hot 100 + CodeTop上的高频题目
________________________________
3. 之后会补上剑指Offer的75道~
喂盐
这个作者很懒,什么都没留下…
展开
-
【LeetCode笔记 - 每日一题】373. 查找和最小的 K 对数字(Java、堆、优先队列)
文章目录题目描述思路 && 代码题目描述几天没打题,感觉脑子都是一团浆糊。。。。升序:肯定得用这条件来优化复杂度数对:用 int[2] 来表示思路 && 代码看了题解区彤哥的思路,代码其实就 8 行= =堆初始化:按照[i, 0]的规律初始化堆弹出:当前堆顶就是最小值,弹出[index1, index2]后,往后最有可能的数对是[index1, index2 + 1],放入队列中继续循环~class Solution { public原创 2022-01-14 14:47:35 · 369 阅读 · 0 评论 -
【LeetCode笔记 - 每日一题】334. 递增的三元子序列(Java、偏思路)
文章目录题目描述思路 && 代码题目描述可以转换成300. 最长递增子序列,再看结果是否大于3但上述写法O(N)复杂度实现不了,还是得用针对这道题的写法(见下)思路 && 代码学习了评论区大佬的写法,O(N) && O(1)代码挺短的,但思路还是需要看一会= =。注意:first 并不是何时都在 second 之后的。两个值之间的联系时紧时松,随着迭代进行不断维护。重点代码只有循环部分,多看看多理解理解…码了半天字,感觉描述得不太好,原创 2022-01-12 14:31:22 · 413 阅读 · 0 评论 -
【LeetCode笔记 - 每日一题】519. 随机翻转矩阵(Java、随机、双指针)
文章目录题目描述思路 && 代码题目描述又是涉及到均等概率的随机~思路 && 代码用的题解区三叶的代码~写得是真的好!不论题目,但抄一遍代码都能觉得有收获!维度转化:并没有创造二维数组(太大了)。而是转化成一维的场景。双指针:每次随机一个[0, m * n)的值,然后向左、向右查找第一个没访问过的值class Solution { int m; int n; Random random = new Random(); S原创 2021-11-27 13:18:32 · 344 阅读 · 0 评论 -
【LeetCode笔记 - 每日一题】423. 从英文中重建数字(Java、字符串、偏思路)
文章目录题目描述思路 && 代码题目描述看了题目以后想到啥?字符数量统计银行家算法逐个拆解建立数字 - 字符串的全局映射思路 && 代码抄答案了,采取了评论区三叶dalao的写法(不得不说,人家的处理写法是真的优雅),学习学习。class Solution { static String[] ss = new String[]{"zero", "one", "two", "three", "four", "five", "six", "原创 2021-11-24 10:51:33 · 442 阅读 · 0 评论 -
【LeetCode笔记 - 每日一题】384. 打乱数组(Java、洗牌算法)
文章目录题目描述思路 && 代码题目描述中等题,很赞!第一次碰到涉及洗牌算法的题有点涉及概率,主要是要实现公平的随机思路 && 代码采用了 Knuth 洗牌算法,可以看看这篇博客时间复杂度O(N),空间复杂度O(N)class Solution { int[] nums; Random random = new Random(); public Solution(int[] nums) { this.nums原创 2021-11-22 11:20:55 · 344 阅读 · 0 评论 -
【LeetCode笔记 - 每日一题】318. 最大单词长度乘积(Java、位运算)
文章目录题目描述思路 && 代码题目描述挺不错!有bitmap的感觉了。思路 && 代码思路好想:两两对比,无公共判断,维护 res那么,如何进行公共判断?这个是主要的问题给每个字符串,用一个26位的int数组存储字符出现次数,然后用于对比?(可以,但有点麻烦)那么简化一下,一个 int 存储一个字符串的字符出现次数吧!class Solution { public int maxProduct(String[] words) {原创 2021-11-17 18:51:38 · 376 阅读 · 0 评论 -
【LeetCode笔记 - 每日一题】375. 猜数字游戏 II (Java、DFS、动态规划)
文章目录题目描述思路 && 代码DFS动态规划新系列~用于区分开高频题和每日一题~题目描述一眼二分,但是实际上并不是这题让我想到社团的猜数字游戏…但是给钱是真过分了= =思路 && 代码DFS自底向上进行递归。Math.max():因为可能选左边,也可能选右边~选取最大的,作为保证class Solution { static int[][] cache = new int[201][201]; // 200 是最大n publ原创 2021-11-12 12:50:24 · 2845 阅读 · 0 评论 -
【LeetCode笔记】299. 猜数字游戏 (Java、偏数学)
文章目录题目描述思路 && 代码题目描述顶级阅读题!今天的每日一题,感觉评论区大佬的写法挺值得记录的,就又水了一篇答题文~思路 && 代码O(n)、O(1)核心代码:Case 2 的两个 if 处理,挺精髓的!这里主要是先存储状态,在后期满足条件的情况下维护奶牛的计数值!class Solution { public String getHint(String secret, String guess) { int x原创 2021-11-08 16:04:26 · 2323 阅读 · 0 评论 -
【LeetCode笔记】117.填充每个节点的下一个右侧节点指针 II(二叉树、DFS)
文章目录题目描述思路 && 代码题目描述很烦…面试被这题干碎了,赶紧给查漏补缺一波!思路 && 代码主要思路:先右,再左(因为左边依赖右边!)getNext():当前节点,无法包办子节点的 next 了,这份责任交给当前节点的 next !当然,如果 next 不行,那么继续递归传递责任(有点像责任链模式)对了,不一定得层序 BFS,因为对于当前节点来说,只要右边已经维护了就行。其他见注释~已经拉满注释了~/*// Definition for原创 2021-11-02 15:04:31 · 158 阅读 · 0 评论 -
【LeetCode笔记】51. N 皇后(DFS、经典题)
文章目录题目描述思路 && 代码题目描述经典题了…但是大一敲过后就再没碰过了。结果面试还是会问= =,今天补一下~思路 && 代码还是挺清晰的,要点如下:使用 DFS,找到一个了再继续找对每一行,逐列进行可行点选择放置点可行判断:【对低行进行】列、45度、135度判断答案格式转换,char[][] 变成 Listclass Solution { List<List<String>> ans = new Arr原创 2021-11-02 14:35:48 · 133 阅读 · 0 评论 -
【LeetCode笔记】958. 二叉树的完全性检验(Java、二叉树、BFS)
文章目录题目描述思路 && 代码层级遍历法BFS题目描述考察对完全二叉树性质的理解思路 && 代码层级遍历法一开始试了自底向上的DFS,过了90%的用例,还是考虑得不够全 = =层级遍历:代码比较多,但是总体效率和方法2差不多/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * T原创 2021-09-07 12:52:38 · 183 阅读 · 0 评论 -
【LeetCode笔记】253. 会议室 II(Java、偏数学)
文章目录题目描述思路 && 代码计划里 hot 100 + 剑指Offer 的题目中唯一一道会员题,同时也是最后一道没写的题,刚好今天 leetcode 发了一天会员可以写上…简直命运石之门的选择,感动!题目描述转化成上下车问题(好像leetcode 也有原题,不过没写到)start 就是 上车end 就是下车最多会议室,就是【车上最多人数】思路 && 代码步骤一:根据 intervals 新建 updown 数组:【时间】【上下车】步骤二:对原创 2021-08-21 17:40:03 · 519 阅读 · 0 评论 -
【LeetCode笔记】301. 删除无效的括号(Java、DFS、字符串)
文章目录题目描述思路 && 代码题目描述【所有可能结果】-> 【暴力DFS】思路 && 代码代码比较长,但是总体思路很清晰。剪枝:舍弃左括号、舍弃右括号两种情况(见注释)分情况:当前字符有【左括号】、【右括号】、【字母】三种情况,字母直接取,不影响具体见注释的 Case 分类,有清晰说明去重:先通过 Set 存储所有当前可行解筛选:dfs结束后,len 为删除最小数量无效括号后的字符串长度。用于对 Set 中的有效括号进行筛选。class原创 2021-08-21 16:27:43 · 169 阅读 · 0 评论 -
【LeetCode笔记】312. 戳气球(Java、动态规划)
文章目录题目描述思路 && 代码题目描述一眼动态规划,但思路确实不好想面试被问过,直接人没了= =思路 && 代码核心思路:关心【最后一个被爆的气球】,自底向上进行动态规划class Solution { // 思路:关心【最后一个被爆的气球】,就不用关心后效性了(毕竟之后已经没有气球了) public int maxCoins(int[] nums) { // 1. init: 处理开头、结尾边界(数字为 1 的气球)原创 2021-08-21 15:01:53 · 203 阅读 · 0 评论 -
【LeetCode笔记】85. 最大矩形(Java、单调栈)
文章目录题目描述思路 && 代码题目描述其实是84. 柱状图中最大的矩形的兄弟题目,理解成多个84题,对结果取max即可。思路 && 代码一行抽象出一个【柱状图】,分别套到84题的函数里即可时空复杂度:O(n2n^2n2)、O(n)class Solution { public int maximalRectangle(char[][] matrix) { if(matrix == null || matrix.length =原创 2021-08-21 13:57:25 · 205 阅读 · 0 评论 -
【LeetCode笔记】309. 最佳买卖股票时机含冷冻期(Java、动态规划)
文章目录题目描述思路 && 代码题目描述股票系列!这次加入了冷冻期要素,需要考虑更多的状态思路 && 代码每天,都有三个状态:开一个 dp = int[n][3] 二维数组主要思路…就是理解几种状态,以及转移的思路(见注释)时空复杂度:O(n)、O(n)class Solution { public int maxProfit(int[] prices) { // 对每一天,存储三个状态: // 0)持有(昨天就原创 2021-08-21 13:19:30 · 192 阅读 · 0 评论 -
【LeetCode笔记】406. 根据身高重建队列(Java、偏数学)
文章目录题目描述思路 && 代码题目描述老阅读题了= =,第一遍看题的时候一脸懵逼但其实代码就6行(嘿嘿)思路 && 代码先按照身高降序排,再按照人数升序排(套路题)class Solution { public int[][] reconstructQueue(int[][] people) { // 身高降序,人数升序 Arrays.sort(people, (p1, p2) -> ((p1[0] ==原创 2021-08-19 21:32:31 · 206 阅读 · 0 评论 -
【LeetCode笔记】399. 除法求值(Java、图)
文章目录题目描述思路 && 代码题目描述第二道图题,大概是hot100里唯二的图题了。。思路 && 代码邻接矩阵存储,g[i][j] 代表 i / j 的值通过已知的表达式,对矩阵进行维护(包括间接得到的值,见注释的步骤2部分)通过三重循环,把全部可能的间接关系补上class Solution { public double[] calcEquation(List<List<String>> equations, do原创 2021-08-19 21:26:50 · 200 阅读 · 0 评论 -
【LeetCode笔记】207. 课程表(Java、图、BFS、队列)
文章目录题目描述思路 && 代码题目描述刷的第一道图相关的题,简直考古要复习一下拓扑、邻接矩阵之类的知识啦思路 && 代码前置课程看成入度,后置课程看成出度对于入度,只需要记录有多少即可。对于出度,逐个记录下来(用于完成后,更新对应结点的入度)初始化:从入度为0的结点开始记录BFS:可行课程加入队列中,先进先出地更新出入度。时空复杂度:都是O(m + n),结点和边都要遍历到class Solution { // BFS,时空复杂度都是原创 2021-08-19 21:17:17 · 192 阅读 · 0 评论 -
【LeetCode笔记】剑指 Offer 55 - II. 平衡二叉树(递归、二叉树)
文章目录题目描述思路 && 代码一脸懵逼,居然没写这道题的题解。。题目描述思路 && 代码思路:平衡二叉树判断公式 = 左子树满足 + 右子树满足 + 左右子树高度差不超过1/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeN原创 2021-08-19 21:02:10 · 137 阅读 · 0 评论 -
【LeetCode笔记】84. 柱状图中最大的矩形(字符串、单调栈)
文章目录题目描述思路 && 代码题目描述和接雨水有点像,但是具体做法还是有点不同。思路 && 代码暴力法只能过 94 / 96 的样例:复杂度O(n^2) & O(1),一个双重循环遍历所有可行矩阵。这里就直接用 O(n) & O(n)的做法了(空间换时间!)思路:参考了Ikaruga的题解,循环找出以某列为高的最大矩阵,再对比这些矩阵大小。时间复杂度:O(n),最多对所有元素 存储一次 + 计算一次。计算值:以当前列为最高列,可行原创 2021-08-15 16:39:11 · 257 阅读 · 0 评论 -
【LeetCode笔记】76. 最小覆盖子串(字符串、滑动窗口)
文章目录题目描述思路 && 代码最近一直在充电基础知识、维护 leetcode 总结博客今天继续摸一摸新题目吧~题目描述感觉和 03. 无重复的最长子串 有点像,都是在字符串上用滑动窗口来找子串。并且都是属于那种,解决一次以后,思路都十分清晰的类型。思路 && 代码步骤:参考了mcdull的这篇题解注意点:需要维护的变量很多(need、left、right、count、minSize、startIndex),要保证正确维护。need[128]原创 2021-08-15 14:57:46 · 329 阅读 · 2 评论 -
【LeetCode 总结】Leetcode 题型分类总结、索引与常用接口函数
文章目录零. Java 常用接口函数集合类数学类字符串一. 动态规划知识点题目二. 链表知识点题目三. 哈希表知识点题目四. 滑动窗口知识点题目五. 字符串知识点题目六. DFS、BFS知识点题目七. 二分法知识点题目八. 偏数学、过目不忘 and 原地算法等知识点题目前言:是时候开一个对于我的 LeetCode 专栏的总结索引了= =虽然说大概只刷了150道左右,不过应该也可以简单总结一下了呢~题型主要是 LeetCode hot100 + 剑指Offer,也有其他的一些高频题零. Java原创 2021-08-07 15:47:45 · 3147 阅读 · 2 评论 -
【LeetCode笔记】162. 寻找峰值(Java、二分、偏数学)
文章目录题目描述思路 && 代码1. 暴力法 O(n)2. 二分法 O(logN)打卡第十七天~题目描述难点在于 logN 复杂度思路 && 代码1. 暴力法 O(n)最简单的做法,直接遍历判断即可。class Solution { public int findPeakElement(int[] nums) { if(nums.length == 1) { return 0; }原创 2021-08-03 13:40:22 · 229 阅读 · 0 评论 -
【LeetCode笔记】621. 任务调度器(Java、桶)
文章目录题目描述代码 && 思路1. 直白的 ac 做法 O(n)、O(n)2. 桶排思想的做法 O(n)、O(n)打卡第十六天~题目描述有点阅读题的意思,可以结合例子理解一下题干~代码 && 思路1. 直白的 ac 做法 O(n)、O(n)同样是 O(n) 复杂度,比方法2慢了不少= =,不过胜在容易想~wait[i]:记录 i 的等待冷却时间counts[i]:记录 i 的剩余任务数量设计思路很简单,每次都选取当前不在冷却的、数量最多的任务原创 2021-08-02 16:53:06 · 332 阅读 · 0 评论 -
【LeetCode笔记】581. 最短无序连续子数组(Java、数组)
文章目录题目描述思路 && 代码1. 排序法 O(nlogn)、O(n)2. 记录 max[ ]、min[ ] 的写法 O(n)、O(n)3. 记录 max、min 的写法 O(n)、O(1)打卡第十五天~前两天有事断签了,要继续加油噢!题目描述主要是,需要达到 O(n) 复杂度。思路 && 代码1. 排序法 O(nlogn)、O(n)诶,让我先来一个懒狗写法先 Arrays.sort 排序,然后有序数组、原数组逐个对比,找到需要进行排序的子数组头原创 2021-08-01 23:57:50 · 296 阅读 · 0 评论 -
【LeetCode笔记】494. 目标和(Java、动态规划、背包问题、滚动数组)
文章目录题目描述思路 && 代码1. 动态规划 O(n2n^2n2)、O(n2n^2n2)(最方便理解,初版)2. 转换成 01 背包问题 O(n2n^2n2)、O(nnn)打卡第十五天~继续加油!题目描述和上一道分割等和子集的做法很像这里代码迭代了很多次,但是时间复杂度是一样的,只是空间复杂度、耗时不断优化。思路 && 代码1. 动态规划 O(n2n^2n2)、O(n2n^2n2)(最方便理解,初版)dp[i][j]:下标[0 ~ i]构成的数原创 2021-07-29 14:31:32 · 257 阅读 · 0 评论 -
【LeetCode笔记】416. 分割等和子集(Java、动态规划、背包问题、滚动数组)
文章目录题目描述思路 && 代码1. 动态规划 O(nc) 、O(nc)2. 结合滚动数组 O(nc)、O(c)打卡第十四天~熬夜也得把题目补上= =题目描述初看题目,想到的思路是用记忆化DFS来找结果来着。。看了题解才知道是背包问题= =思路 && 代码1. 动态规划 O(nc) 、O(nc)参考了liweiwei的这篇题解,里面给背包问题讲了一些相关知识~时空复杂度: n 是 nums 的长度,c 是 sum 的长度。dp[i][j]:从[0,原创 2021-07-29 00:11:29 · 433 阅读 · 0 评论 -
【LeetCode笔记】72. 编辑距离(Java、字符串、动态规划)
文章目录题目描述思路 && 代码 O(n2n^2n2)、O(n2n^2n2)打卡第十三天~题目描述感觉和正则表达式匹配这道题很像:同样的两个字符串,同样的二维数组dp,同样的hard。。= =思路 && 代码 O(n2n^2n2)、O(n2n^2n2)使用动态规划的做法,同样多开一行、一列来进行边界处理。dp[i][j]:以[0, i] 和 [0, j]的子串,word1Son转化成word2Son的最少操作数字具体做法见注释的 part 和 Cas原创 2021-07-27 22:57:37 · 174 阅读 · 2 评论 -
【LeetCode笔记】剑指Offer 37. 序列化二叉树(Java、二叉树、序列化、BFS、队列)
文章目录题目描述思路 && 代码题目描述这道题涉及到不少 String、StringBuilder、Integer的转换、处理。思路 && 代码序列化:迭代进行一个层序遍历,逐个加入结果字符串中。反序列化:根据序列化得到的结果字符串,同样是借助队列,进行层序遍历来构造出二叉树。总的来说,是需要多敲几遍的题(String等类的用法)/** * Definition for a binary tree node. * public class Tree原创 2021-07-26 23:18:24 · 235 阅读 · 0 评论 -
【LeetCode笔记】剑指Offer 19. 正则表达式匹配(Java、动态规划)
文章目录题目描述思路 && 代码打卡第十二天~题目描述拖了超级久的一道题= =,懒得看正则表达式,但是其实和正则表达式相关的地方也不多思路 && 代码参照这篇题解写的,dalao属实万物皆可动态规划。主要是分情况(见代码注释的Case),主要是:空正则(正则表达式为 “” )非空正则:a. 不是 ‘✳️’ 的情况b. 是 ‘✳️’ 的情况:重复 0 次的情况 && 重复的情况|= 的考虑:2.a 和 2.b,只要满足其原创 2021-07-26 23:07:46 · 171 阅读 · 0 评论 -
【LeetCode笔记】剑指Offer 41. 数据流中的中位数(Java、堆、优先队列、知识点)
文章目录题目描述知识点1. 优先队列2. Java 中 queue 的 offer、poll 等区别思路 && 代码打卡第十一天~题目描述虽然但是,这是一道很nice的题目(涉及的知识点、运用很实用,见知识点模块)知识点1. 优先队列priorityQueue 是 Queue 接口的实现,可以对其中元素进行排序。默认顺序是升序;采用的是堆排序(小顶堆),因此只能保证根是最值,整个堆并不是有序的。自定义比较类:在 priorityQueue 的构造函数参数中用 L原创 2021-07-25 12:46:30 · 278 阅读 · 0 评论 -
【LeetCode笔记】剑指Offer 59. I 滑动窗口的最大值(Java、单调队列)
文章目录题目描述思路 && 代码1. 暴力法 O(n2n^2n2) && O(1)2. 单调队列辅助 O(n) && O(n)打卡第十天~题目描述久违的滑动窗口题!思路 && 代码1. 暴力法 O(n2n^2n2) && O(1)老规矩,先来个暴力法熟悉一下题目~出乎意料没有超时…不过我们还是需要寻找更优的做法!class Solution { public int[] maxSliding原创 2021-07-24 18:04:14 · 140 阅读 · 0 评论 -
【LeetCode笔记】剑指Offer 51. 数组中的逆序对(Java、分治)
题目描述多说无益~直接冲代码吧!思路 && 代码1. 暴力 O(n2n^2n2)乍一看这题目,很难不直接用暴力法冲一冲(也就双层循环的事)但是不出意料地超时啦~想一想,O(n2n^2n2)会超时,那么我们就试着思考怎么降低时间复杂度到O(nlogn)吧!(还是不行的话,就再去思考O(n)的方法,循序渐进~)于是,分治的思路就跃然于纸上了~class Solution { public int reversePairs(int[] nums) {原创 2021-07-22 16:24:07 · 170 阅读 · 0 评论 -
【LeetCode笔记】剑指Offer 43. 1~n 整数中1出现的次数(Java、数位dp、偏数学)
文章目录题目描述思路 && 代码打卡第九天啦~题目描述有点像数字序列中的某一位思路 && 代码主体思路:从低到高,计算出每一位出现的1的个数。三种情况:n的当前位为0、为1、为其他值。这里和数位dp的思想相关(但是博主没怎么看= =,有兴趣可以去了解了解)仔细想想确实是dp的理,初始化、状态转移方程与最优子结构都很明显。class Solution { // 思路:逐位计算,计算每一位的1的次数 public int count原创 2021-07-22 16:00:37 · 184 阅读 · 0 评论 -
【LeetCode笔记】31. 下一个排列(Java、原地算法、偏数学)
文章目录题目描述思路 && 代码打卡第八天~题目描述需要花点时间思考的一道题,这篇题解写得很好。思路 && 代码主要分为这三个步骤:从后往前找到满足 nums[first] < nums[first + 1] 的索引 first从后往前找到满足 nums[second] > nums[first] 的索引 second交换 nums[first]、nums[second],翻转 nums[ first + 1 : ]对于步骤1,原创 2021-07-21 14:54:17 · 160 阅读 · 0 评论 -
【LeetCode笔记】剑指 Offer 14. 剪绳子 I && II(Java、动态规划、偏数学)
文章目录剪绳子 I题目描述思路 && 代码1. 动态规划 O(n2n^2n2)、O(n)2. 最优解:数学方法 O(n)、O(1)剪绳子 II题目描述思路 && 代码剪绳子 I题目描述还是比较偏数学的一道题,通过获取结论来获得最优解思路 && 代码1. 动态规划 O(n2n^2n2)、O(n)dp[i]:长度为 i 的绳子,可达到的最大值状态转移方程:以之前的值,循环组合,找出可取的最大值class Solution { pu原创 2021-07-20 18:16:57 · 222 阅读 · 1 评论 -
【LeetCode笔记】剑指 Offer 44. 数字序列中某一位的数字(Java、偏数学)
文章目录题目描述思路 && 代码题目描述比较偏数学的一道题。。众所周知这类题代码量都不大,但是就是难想= =思路 && 代码这篇题解写得很好~建议还是直接看上面的题解(结合图更好理解),这边我只是写上一点自己的笔记主要分为三个步骤:寻找对应数字的位数、寻找对应数字、寻找对应数字的最终位步骤一:通过公式 count = 9 * digit * start 来循环寻找步骤二:(n - 1) 是因为要向下取,结合计算机中除法直接向下取整的特性步骤三:(n原创 2021-07-20 18:02:09 · 87 阅读 · 0 评论 -
【LeetCode笔记】剑指 Offer 93. 复原 IP 地址(Java、DFS、字符串)
文章目录题目描述打卡第七天~也是很常考的一道题了!感觉和把数字翻译成字符串这道题很像,也都可以用 DFS 来做题目描述还是定义全局的 list,在 DFS 的过程不断维护 list递归结束的情况:已经凑够四个数字(跑完了 string && 没跑完 string)前导0:当前数字首位为0,直接凑上0并往下一个数字 DFS其他DFS情况:最多3个数字,并且进行255的范围判断class Solution { char[] arr; List&l原创 2021-07-20 17:43:43 · 230 阅读 · 0 评论 -
【LeetCode笔记】剑指 Offer 47. 礼物的最大价值(Java、动态规划)
文章目录题目描述思路 && 代码1. 常规动规 O(n2n^2n2) 、O(n2n^2n2)2. 滚动数组法 O(n2n^2n2) 、O(nnn)题目描述一眼动态规划啦~思路 && 代码1. 常规动规 O(n2n^2n2) 、O(n2n^2n2)dp[i][j]: 对应位置 grid[i - 1][j - 1] 为终点,可得到的最多礼物dp[][] 外包围一层,省去边界判断~核心思想:从左边、上边选择最大值即可class Solution {原创 2021-07-18 23:57:51 · 264 阅读 · 1 评论