刷题记录(2)

上一篇笔记不知不觉已经一万两千多字了 刚好回溯算法章节也刷完了 就决定重新开一篇继续记录 接下来准备攻克树的相关题目 之前一直恐惧于树结构的复杂 现在一步步慢慢来


2023.9.21
首先回顾了一下二叉树的前中后序遍历 递归和非递归的 做后序非递归时突然做不出来了 无奈之下看了讲解 发现其实就是前序遍历的代码改动一下就行 前序是中左右 改动一下进栈顺序成为 中右左 然后倒转一下数组不就好了 很巧妙
c 中序非递归也没写出来…我是废物 纸上推的很顺畅 但就是用代码实现不了 c 不过看评论区和carl说非递归也有统一的代码格式 可以明天学学


2023.9.29
过去七天参加了数模以及玩了两天,今天是中秋,继续做题。加油!
学了一下统一样式的非迭代,三种遍历方式都试了一下,感觉摸出了一点门路。他其实用了一个NULL节点来标记我们要处理的节点。比如说后序遍历,左右中,当我们访问到某个节点时,我们并不直接去处理它,要去看它的左右子节点,因此我们需要加入一个NULL节点标记一下。接着按这样的方式访问了左右子节点,当访问到某一节点左右都为空且我们已经给它上面加上了NULL节点。那么我们就会将这个节点加入到输出数组中。
三种方式很巧妙,值得去记代码模版。
102层序遍历 我印象中记得要用到队列,但是推不出来怎样用,问题在于我如何知道每一层有多少个节点,于是尝试着用栈和队列一起来,还是没有做出来。看了讲解之后,用建好队列的size就可以,学到了,看了0ms的解法,使用了一个独特的节点在队列里标注每一层的结尾。
107层序遍历II 这个题目我是加了一个栈来实现,看了更好的题解,还是上一道的代码,只不过最后加了一句逆转数组代码就实现了。


2023.9.30
199 二叉树的右视图 这道题没什么好说的,层序遍历,将每一层最后一个元素加入数组即可
637 二叉树的层平均值 层序遍历加求和在求平均
429 N叉树的层序遍历 二叉树层序遍历进队列那里改一下就行
515 在每个树行中寻找最大值 层序遍历加值判断
116 填充每一个节点的下一个右侧节点指针 层序遍历加了处理末尾节点以及连接每一层的每一个节点即可


2023.10.1
117 填充每一个节点的下一个右侧节点指针II 跟上一问的代码一模一样也能通过。
104 二叉树最大深度 被限制住了,我用的是层序遍历来做,之前有做过这道,印象中不用这么麻烦。看了之前的提交记录,是用dfs做的,很简单的思路。
111 二叉树的最小深度 之前通过了两次,是一道easy题。我想不用层序遍历,用dfs来做结果没做出来,看了眼题解才想起来。
226 翻转二叉树 之前通过一遍,这次也通过了。看了carl讲解才明白里面的遍历顺序。之前搞不懂直接瞎做。


2023.10.2
101对称二叉树 这道题之前做过,但是这次没做出来,原因在于不知道怎样递归了。看了讲解视频才明白一个重要的点,二叉树的题讲究的是一个遍历顺序,有些解法你觉得并没有涉及到遍历顺序其实已经包含在内了。最后用递归做出来了,迭代的话只想到用层序遍历然后对比每一层的节点。
599n叉树的最大深度 和二叉树的最大深度那题类似,只不过要处理每一个子节点的深度。看了讲解视频发现这本质上是后续遍历实现
222完全二叉树的节点个数 用了普通二叉树的做法直接前序遍历一遍就可以做出来,但是不够优化。看了优化版本是利用了完全二叉树的特性,即一部分是满二叉树 2 h − 1 2^h-1 2h1即为深度为h的所有节点数,利用这个可以减少时间复杂度。


2023.10.3
110 平衡二叉树 用递归做出来了,但是对于采用了什么遍历方式还是有点迷糊。稀里糊涂的就把题做出来了,事后分析,应该是后续遍历。
257二叉树的所有路径 这道题我也明白要用回溯,整体思路都没问题,只是细节处理上一直通过不了。看了讲解才反映过来,可以在递归的时候用数组存放,最后一步转换为符合题意得字符串形式,在写得过程中,就会清晰很多。
100相同得树 这道题和判断二叉树是否对称很类似,代码也差不多。没什么注意得点。
572另一个树的子树 这道题之前做过,但这次忘掉了怎样做了,清楚应该继续判断是否为同一二叉树那一套逻辑,但是怎样找到那个开始判断的点困扰我了,看了之前交的题解才反应过来,总体上还是后续遍历。先判断左子树,再判断右子树,最后判断中间的。


2023.10.4
404左叶子之和 这道题之前做过一次,这次还是没有做出来,思路是正确的,但细节处理上总是差那么一丝,对题目掌握的还不够透。
513找左下角的值 这道题用层序遍历很简单,但是递归法我没有想出来。看了讲解视频,思路很清楚,还是用了回溯。
112路径总和 这道题我想应该用回溯,但是回溯没写出来,还需要注意一个处理细节就是,可以将targetSum传递进去,每次与节点的val相减。


2023.10.5
106中序后续构造二叉树 这道题我有一丝想法,但是我想的很乱,没有顺序。导致无法用代码实现我的想法,看了讲解视频,carl列了一个步骤在白板上,和我的思路大致一样,但是他这个很清楚明了。现在越来越觉得逻辑性十分重要,要把解题步骤一步步想清楚
105前序中序构造二叉树 跟上一道一模一样 改改代码就能过
654最大二叉树 跟上面两道的处理逻辑有些类似,都是将递归中的这次节点作为树的新节点加入进去,通过这个节点将数组分为两部分,递归的左右进行。


2023.10.6
617合并二叉树 之前做过的一道题,又是忘掉了。我的思路是合并到tree1上,但是利用递归返回节点哪里没有想透。其实在递归中,不需要考虑怎样将节点挂上树,只需要向上层返回正确的节点即可。
700二叉搜索树中的搜索 很简单的题,秒了。没什么可说的
98验证二叉搜索树 二叉搜索树的特征是中序遍历后是一个严格递增数组,可以利用这个特点,在遍历过程中就进行判断,采用双指针,记录前一个节点的值,再加上中序遍历即可。我没做出来md
530二叉搜索树的最小绝对差 做了上面一道题这道题加进去一个变量维护每两个节点之间的差值即可,秒了。


2023.10.7
501二叉搜索树中的众数 我用了哈希表存储,然后遍历一遍哈希表。可以只遍历一遍通过双指针来做,以后看到二叉搜索树就要立刻想到中序遍历是严格递增的
236二叉树的最近公共祖先 没做出来md, 看了讲解视频,发现是真的妙。首先确定后序遍历,再利用递归必有回溯,利用回溯将符合条件的节点一步步传上去。比如找到p节点了,那么我立刻将p节点return给上一层,因为是后序遍历,所以我们首先获得了左右子树传上来的节点,若左子树穿上来的是p,而右子树里没有找到(传上来null)接着回溯,那个节点不为null传哪个节点,这里就继续向上传p,直到有一个节点的右子树传上来q,那么我们则向上传这个root节点,即为我们所要找到的最近公共祖先。其余子树里都没有q,p所以都是null,因此回溯到根节点,只传上来当时那个root.
235二叉搜索树中的最近公共祖先 这道题我采用上一道题的思路做出来了,但是很繁琐,看了讲解。只要利用好二叉搜索树的特性很简单明了。若是p,q的值都小于当前root的值,那么我们就递归进root->left,反之递归进root->right,若出现等于某个节点或者一大一小呢?我们就向上返回当前节点root


2023.10.8
701二叉搜索树中的插入 我写的麻烦了,我第一时间想到的是通过递归找到该插入的位置,递归时带着pre节点一起,但这道题使用迭代法更为简单方便一些,直接使用一个while循环,找到插入位置即可。
450删除二叉搜索树的结点 难点在于,删除之后如何维持二叉搜索树的结构。尝试了多半个小时,没写出来。看了讲解,思路很清楚,一共分为五种情况,每种情况具体讨论。最后迭代向上,这道题我觉得可以记一记。比较经典


2023.10.9
669修建二叉搜索树 这道题有思路,但是思考时走了歪路,导致没做出来,我想的有些复杂,当当前结点值小于low时,我考虑到了左右子树为空或一方为空或都不为空的情况,其实这里没有必要,直接继续向着它的右子树修剪即可最终返回的是右子树的根节点。至于将其左子树置空再遍历右子树,多此一举了,因为最终return的是其右子树的节点。我还多考虑了当前节点的值等于low或者high时,应该怎样处理,其实没有必要,因为修建范围是两个闭区间,直接继续向下修剪即可。
108将有序数组变为二叉搜索树 自己写出来了,虽然是道简单题。
538把二叉树转换为累加树 这道题我意识到采用右中左遍历,但是不知道怎样处理递增的值,讲解视频中提到,设置一个全局的变量,一直记录着累加的值,采用右中左遍历时,每次加上这个变量即可。

二叉搜索树中除了中序遍历是个严格单调递增序列,还有一个常用的方法就是pre+cur


历时12天,二叉树章节刷完了,但是感觉自己掌握的并不是很透彻,准备刷完其他的章节,二刷,三刷二叉树。


2023.10.10
开始贪心章节吧
11盛最多水容器 这道题不是贪心章节里的 而是昨晚回去看室友正在讨论的,刚开始我想拿dp来做,但是写了半天发现每一个状态之间没有相关联性,因此就作罢。后来又想到可以利用双指针前后遍历只需要O(N)的时间复杂度,就做出来了。这个mid感觉就是个easy
455分发饼干 是道简单贪心,每次将最大饼干给最大胃口的人判断就行,但是这个时间复杂度挺高。对了,得提前排个序。
376摆动序列 很简单的思路,就是记录与前一个的差值,若是上一个差值为正,当前差值为负,那么我们就++, 但是结题中却分析很多,不太明白为什么那么绕。
53最大子数组的和 这道题9.9日才做过的,当时应该在学dp,而且这道题经典的dp使用场景,所以我想先试着用dp做做,结果没做出来。忘掉了做法,tmd。于是我想,那我重新搞思路,从贪心入手开始做,结果还是没做出来。dp才做过不到一个月,就印象很模糊了…ccccc


2023.10.11
122买卖股票的最佳时机II 这是在dp章节做过的,看了眼提交记录,是9.2。正常发挥,一样的没用dp做出来,主要是在状态转移方程那里,实在不清楚应该怎样定义是否持有股票这个行为。看了眼之前的关于这点的处理,是二维数组,每一天还有一个0 1分别表示持有该股或者不持有。不过用贪心倒是很快做出来了,我自己也没想到。
55跳跃游戏 这道题自己尝试了没做出来,问题在于我一直想着用双指针来做,一个pre,一个cur但是这样考虑的if-else太多了,导致很多细节都会出现问题。提交了几次没通过,看了题解,很妙。我们用maxj维护最大能跳到的位置,从数组第一位开始遍历,在所处位置 i <=最大能跳到位置maxj的情况下,不断更新maxj.若当前位置 i 递增超过了maxj 直接返回false
45跳跃游戏II 这道题的关键在于,不要关注于从那个节点开始跳,而是从那个阶段开始跳,这个阶段就是之前结点保存下可以最大跳动的范围,若是这个范围涵盖了最后一一个节点就返回即可。我没做出来。


2023.10.12
1005k次取反后最大数组和 easy题,直接秒了,可以用贪心,但直接推理也可以。
134加油站 我的做法超时了,看了讲解,是计算每一个站点我的邮箱里是增加还是减少油量,然后累加,当累加首次出现<0时,那么以之前任意一个为起点都无法到达此时的站点,只能从该站点往后的站点开始选择。很难想,md


2023.10.14
昨天早上做了小程序,下午过来搞了论文的作者信息和基金信息就看mit课程去了,最后尝试了一下135没做出来,之后就打球。一直到十点回去洗澡,休息。
135分发糖果 先是思考了一下昨天的思路,发现有问题,果断看了讲解,再讲解思路的时候点醒我了,“每一个孩子都需要和两边的孩子进行比较”,那我们就进行两次循环一次只比较一边,第二次逆着来。很巧妙。


2023.10.15
860柠檬水找零 这道题我生生靠逻辑解出来了 结果耗时800多ms,看了讲解,发现用变量记录各个面值钱的个数即可,不用用数组记录。
406根据身高重新建队列 这道题之前做过很有印象,但是这次还是没有做出来。看了讲解,思路清楚了很多。当排序遇到多个维度时,就需要考虑确定某一个维度再去考虑另一维度的事儿。这道题就是先根据身高排,身高相同时,第二个谁小谁靠前,然后再根据第二个因素调整位置,因为此时某个人前边站的都是比他高的了,因此直接按照其第二个因素插入即可。


2023.10.16
452用最少数量箭引爆气球 这道题之前也是做过,这次还是没有做出来,虽然经过了上两道题指点,知道了应该先考虑其中一个维度,但是后续的还是没有想明白,看了之前的提交记录,立刻明白了,很简单的思路。还是得多做。
435无重叠区间 跟上一道题目类似,不过这道题做出来了,看了评论了解到,这是典型的区间贪心,必定要用排序,所以以后遇到类似的可以直接考虑排序一个维度,然后再往下做。
763划分字母区间 这道题没做出来,主要是没思路,看了讲解明白过来了。关键在于我们首先需要统计每一个字符在字符串中出现的最远位置,然后再去遍历字符串,找到分界线后加入返回数组。
56合并区间 这道题整体思路和无重叠区间很相似,都是首先排序,但是这道题在处理往返回数组中添加时有点技巧,它是直接将第一个区间就加入到返回数组,每次若是满足重叠条件,则直接修改返回数组的那个end,若不满足重叠条件,则直接加入到返回数组中。


2023.10.17
738单调递增的数字 这道题不算难,主要模拟一遍给的示例就能有思路。从后往前遍历,遇到一个大于前一个的,就将当前-1,后边的都置为9即可。
968监控二叉树 这道题我开始看,没有一点思路。看了讲解之后,发现我自己想的很浅,为了避免摄像头数量变多,我们应该尽可能的不浪费摄像头的监控范围,因此应该在叶子节点的父节点安装摄像头。所以这里就涉及到二叉树从下向上遍历(后序遍历),每一个节点的状态我们也需要传递上去,帮助父节点确定其状态。看了讲解,很清楚的思路。


10号开始刷贪心章节的,到今天刚好一周时间,贪心章节的19道题目刷完了一遍。其实这样看下来平均一天也就3道题。每天花费时间却在2-3h,效率很低。希望之后可以提高效率。把时间空出来多学其他的东西。接下来刷一下基础的数据结构那些题目吧,刷完后继续二刷一下dp,很多已经记忆不清了。


2023.10.18
704二分查找 之前一直没搞明白二分查找里的区间问题,这次虽然手撕出来了,看了讲解才明白,我一直以来的写法是属于左闭右闭区间的写法。
27移除元素 这个要求原地移除给我整蒙了,结果就是将target扔掉到后边不用管就行。
977有序数组的平方 双指针就可以O(n)解决。


2023.10.19
209长度最小的子数组 这道题用滑动窗口做,也就是可以用双指针代替,思路大体是正确的,但我用代码实现的时候有点问题,细节方面考虑的不清楚。
59螺旋矩阵II 这道题难点在于边界的判断,这个是数组题,考察的点在于二维数组,也就是矩阵的遍历时边界判断。我没做出来,很c。
203移除链表元素 双指针就可以做出来,就是第一个元素为val时,需要单独处理一下。
206翻转链表 这道题没做出来,给忘掉了。看了讲解,思路清晰了很多,最后用递归也实现了一下。这道题很经典。


2023.10.20
24两两交换链表中的节点 这道题,自己在纸上模拟了好几遍都没模拟出来,看了讲解,懂了。又去题解区看了递归的实现,解的很丝滑,学到了。
19删除链表中的倒数第N个节点 遍历一次链表就可以实现,这道做出来了,但是也耗费了挺长时间。现在做的链表题总结一下,使用dummy head 以及 三个指针就可以解决大多数问题。


2023.10.21
142 循环链表II 这道题还是让我吃了点苦头,知道用快慢指针来判断是否有环,但是这道题是返回环的入口节点。刚开始没做出来,看了讲解才明白,当fast与slow相遇时,再设一个指针从head处开始,与fast同时一步一步遍历,最终会在环的入口处相遇。
242 有效的字母异位词 秒了。
349两个数组的交集 也没有什么难点,都是简单题。


2023.10.22
202 快乐数 用unordered_set就可以解决,秒了。只不过让一个数字变为字符串的这个操作倒是可以好好记住。
454 四数相加II 这道题刚开始用了三层循环,nums4用了multimap来方便查找,结果还是超时了。看了讲解,才明白,把四个数组的查找利用map简化成两个数组的查找了。时间上成了两个O(N^2).
383 赎金信 秒了 简单题。


2023.10.23
15 三数之和 这道题虽然出在hash章节,但是使用hash却不是意见简单的事,这道题简便做法是利用双指针来做。先排序,排序完的数组容易去重,然后指定一个i,再去遍历left,right。刚开始用hash做了,但是输出的结果里含有重复的,一时半会没想明白怎样去重,看了讲解才明白用sort+双指针更容易。
18 四数之和 这道题刚开始没想明白,思路停留在四数相加II那上边,想了大概十分钟没有结果,看了眼评论,发现就是上一道题再套一层for循环即可.
344 反转字符串 秒了.
541 反转字符串II 很笨,用了很笨的方法,耗时耗力,看了评论里写的,很清晰明了。


2023.10.24
151反转字符串中的单词 这道题我考虑的太过于复杂,导致没做出来,其实很简单,用双指针消除空格,再用库函数reverse反转所有,再挨个反转单词即可。
28 找出字符串第一个匹配项的下标 用暴力也可以解但是时间复杂度是O(m*n),这里学习了KMP算法,但是感觉没咋学明白,这个时间复杂度只有了O(m+n),明天再看看


2023.10.25
首先回顾了一下昨天写的kmp,手推了一遍计算next数组,懂了道理,但是下次写不写得出来就不清楚了。
459 重复子字符串 这道题想到了使用kmp,但得到next数组后,不知道怎么进一步处理了。看了讲解,才明白,若是一个字符串是由它的子串重复构成,那么长度减去最长前后缀就是重复子串的长度。
20 有效的括号 没什么难的,用栈就可以。
1047 删除字符串中的所有相邻重复项 这道题用栈比较麻烦,我是蠢比。不知道使用string的pop_back与push_back


2023.10.26
150 逆波兰表达式 就是后缀表达式求值,给了提示,跟着提示走很容易实现,但是没有提示确实在短时间内很难看懂怎样后缀表达式怎样求解。
239 滑动窗口最大值 这是道困难题,很容易想到暴力解法,但我估摸着肯定会超时,于是我优化了点暴力解法,没想到最后还是超时了。看了讲解明白,使用单调队列可以很容易的解出,单调队列还是第一次接触。值得学习。
347 前k个高频元素 这道题没做出来,看了提交记录才知道用优先队列做,我之前学习过,但一直没用过,导致根本想不起来怎样使用。STL看完,希望能对这些容器熟练掌握


2023.10.27
18号开始做链表数组栈章节,平均一天也就3道题,花了9天时间做完了。常规章节应该都做过一遍了刚才看。现在继续二刷。从dp继续开始刷起吧
509 斐波那契 秒了
70 爬楼梯 初始化需要注意一下
746 使用最小花费爬楼梯 初始化花了好长时间。之前用一个dp数组维护状态,这次用两个数组维护,分别是从0起跳和从1起跳。逻辑相比于之前的清楚了许多,但显得繁琐
62 不同路径 自己做出来了,美滋滋。


2023.10.28
63 不同路径II 就是62多加一个判断条件,没啥难的。
343 整数拆分 这道题整体思路想出来了,但是状态方程考虑岔了,看了眼之前的提交记录才明白。
96 不同的二叉搜索树 这道题没做出来,问题在于我把dp数组定义错了,我是想以i为根节点寻找 d p [ i ] d p [ i − 1 ] dp[i] dp[i-1] dp[i]dp[i1]之间的关系,没找出来,最后看了提交记录,dp数组的定义为节点有i个的二叉搜索树最大数量。傻逼了


2023.10.29
今天正好有时间,参加了一下周赛,一道也没做出来…
100111 这道题就是模仿就可以了,但是我做得时候傻逼了,p&nums[i]会改变p的值,我还拿着去比较,所以说结果一直不正确。
100102 这道题逻辑性倒是很强,要考虑到所有可能的情况比较难。


2023.10.30
416 分割等和子集 这道题没做出来 关键点在于我没想出来合适的dp数组定义,正确的数组定义是 d p [ i ] dp[i] dp[i]是指容量为i的背包所能装的最大价值,在本题中value=weight,就是01背包的模版直接用即可。我很蠢
1049 最后一块石头的重量II 这道题没做出来,关键是在于不知道如何往dp上靠,想到了从一个序列中选取一个子序列使其值尽可能等于target,以后遇到类似问题都要记得使用dp.
494 目标和 这道题求的是装满这个背包的所有方法,我尝试着用二维去做,但做出来不正确,太笨比了。


2023.10.31
474 一和零 这道题关键在于想明白,转化为01背包问题,物品是string,容量这时候有两个一个是m一个是n,因此这里需要三维数组去遍历。
518 零钱兑换II 纯完全背包求组合数,状态转移方程那里没想清楚。
377 组合总和IV 纯完全背包求排列数
322 零钱兑换 完全背包min问题,遍历顺序无所谓


2023.11.1
279 完全平方数 完全背包的min问题,做这种题最主要的是定义好dp数组含义,以及遍历顺序,求排列的时候先背包后物品,求组合就先物品后背包。
139 单词拆分 这道题整体框架就是完全背包求排列数,但是我没做出来,复盘是因为我没有想清楚状态转移方程,其实很简单的判断条件。
198 打家劫舍 我定义了两个状态,偷还是不偷,看了之前的提交记录,发现定义一个一维数组即可,我这样反而有点啰嗦了。
213 打家劫舍II 第一个屋子和最后一个屋子连在一起,那么用两个dp数组来就行了,第一个是偷第一个屋子对应的不偷最后一个,第二dp数组对应不偷第一个屋子对应偷最后一个。最后对比就行。


2023.11.2
337 打家劫舍III 这道是树形dp,没想出来,看了眼之前提交,很巧妙的dp。但是最后看了评论用dfs做的,比较容易理解。
121 买卖股票的最佳时机 想用dp来做,没做出来,直接贪心了了,看了提交记录才想起来dp的做法。
122 股票II 秒了
123股票III 半秒吧 处理了点细节问题,整体做法与思路上没问题


2023.11.3
188 股票IV 没做出来,是上一道的进阶版,还是定义状态,很巧妙。
309 冷冻期股票 状态定义十分关键。
714 手续费股票 和普通股票没区别,秒了。
300 最长递增子序列 没做出来,问题在于没想清楚状态转移方程。


2023.11.4
674 最长连续递增子序列 比上一道简单多了,秒了。
718 最长重复子数组 没做出来,忘记怎样定义dp数组了,而且子数组是要求连续的,子序列是默认不连续。
1143 最长公共子序列 半秒,提交了一次没通过,改了改才通过。


2023.11.5
参加了周赛,又是两题选手tmd


2023.11.6
1035 不相交的线 其实就是1143,没看出来。印象中,第一次做是看出来的。变蠢了
53 最大子数组和 用dp秒了,但是贪心一时半会没想透彻。
392 判断子序列 简单题我想复杂了,调整了半天才过。
115 不同的子序列 困难题,没做出来,md。想不明这个递推公式


2023.11.7
583 两个字符串的删除操作 思路公式都是对的,初始化哪里忽略了。
72 编辑距离 增加的那个没想明白,但题还是做出来了。
647 回文子串 暴力可解,用dp不会了,原来是数组定义就出现了问题
516 最长回文子序列 思路差不多,细节需要更加小心,没做出来,md.


2023.11.8
739 每日温度 单调栈问题,通常是一维数组,要寻找任一个元素的右边或者左边第一个比自己大或者小的元素的位置,此时我们就要想到可以用单调栈了。
496 下一个更大元素 用暴力做出来了,但是用单调栈没做出来。单调栈的理解不够
503 下一个更大元素II 循环数组怎样处理,使用单调栈的场景。学习到了。


2023.11.9
42 接雨水 hard题,知道用单调栈能做,但是一些地方的处理还是没有想到位。这道题很巧妙的用了单调栈,很经典
84 柱状图中的最大矩形 hard题,这两道差点做吐了,太难了,明知道用单调栈来做,就是做不出来。


2023.11.10
455 分发饼干 贪心秒了
376 摆动序列 这道题感觉不难,但是没做出来,我蠢了。一时半会思路很乱
53 最大子数组和 贪心费了点功夫,dp倒是很快做出来了。


2023.11.11
122 股票II 前几天dp刚做过,用贪心秒了。
55 跳跃游戏 果然做过一次的题,很容易没有影响,导致想不起来,特别是贪心这类题。没做出来,我是sb
45 跳跃游戏II 很简单的思路,我就是想不到啊,我是蠢b


2023.11.12
参加了周赛,又是两题选手…第三道有点思路,但是一直做不出来放弃了


2023.11.13
周赛第三题 很简单的思路,当时做得时候没想明白,纠结的方向错了。
1005 k次取反后数组最大和 简单题,没能秒,代码跟大便一样又臭又长。大佬的思维学习到了
134 加油站 这道题说实话很难想到贪心,局部最优推出全局最优。20年字节面试题
135 分发糖果 困难题,但记着之前做的思路,就是从两边考虑。


2023.11.14
860 柠檬水找零 if-else大法…
406 根据身高重建队列 做了很多次我依旧没做出来,是大蠢b
452 最少箭射爆气球 思路很简单,做出来了应该是记得之前的做法了。


2023.11.15
435 无重叠区间 和452题很相似,改一改代码就能ac
763 划分字母区间 这道题耗时太长了,我转换为区间重叠问题,需要注意很多的细节。
56 合并区间 上一道题我的思路就是这样,这道题做出来了。


2023.11.16
738 单调递增的数字 思路很简单,但做得过程比较波折,耗时24min
968 监控二叉树 hard题,隐约有点印象,但是不会做了。直接看题解了。
77 组合 用回溯做出来了,只是没有想起来剪枝优化,用时10min


2023.11.17
216 组合总和III 组合问题,简单的回溯直接上。
17 电话号码组合 简单回溯。
39 组合总和 之前的回溯注意一下start细节即可。


2023.11.18
40 组合总和II 这道题困在了如何树层去重上。还是掌握的不熟悉
131 分割回文串 这道题也没有做出来,就差临门一脚,掌握的不够熟悉,明天做完周赛再看看这两道题。


2023.11.19
周赛又是两题选手…什么时候能突破到三题啊!?!?!?


2023.11.20
93 复原IP地址 这道题没做出来,知道使用回溯,但对于怎样使用回溯开始解就有点懵。
78 子集问题 这道题递归中不需要使用return,因为就是需要遍历整颗树,15min.
90 子集II 上一道加个剪枝,3min秒了


2023.11.21
491 递增子序列 去重哪里难到我了,不过还是解决了,不过用了笨办法16min。
46 全排列 用set去重即可,15min.
47 全排列II 全排列的官方做法学习了一下,不用set,用了一个visited数组来统计。


2023.11.22
400 第N位数字 字节的一道面试题,纯考验数学,没想出来。是个彩笔
332 重新安排行程 没做出来,很绕感觉题目
51 N皇后 很经典的题,可以说自己独立做出来了。


2023.11.23
37 解数独 这道题确实难到了,就是简单的回溯,但是总是实现不出来,调试就花了近1h。
1410 HTML解析器 题不难就是模拟,但是细节处理上花费了时间


2023.11.24
2824 每日一题 简单题,直接暴力就行,秒了
27 移除元素 简单题,双指针就行,但是我想的很复杂,蠢b了


2023.11.25
1457 每日一题 不会做,看了题解,发现思路其实挺简单的,还是没有想清楚。
做了一道卡玛网里的题 数字替换字符串,实现了原字符串替换,但感觉并没节省多少空间。算是另一种思路吧
151 反转字符串中的单词 手很生,处理字符串中的空格花费了很多功夫


2023.11.26
参加了周赛,两题选手,第三题有思路,但是具体还是没写出来。前两天直接用了暴力,很蠢,明天看看简单的方法


2023.11.27
看了下昨天周赛的题目,第一道easy题让我给做复杂了
17.05 字母与数字 利用前缀和+hashtable,学习到了新东西。虽然没做出来


2023.11.28
206 反转链表 沙比了,20min才做出来
19 删除链表倒数第n个,这个倒是简单
每日一题 使用双端队列完成这个,我直接用了数组,双端队列的有点细节没实现出来。


2023.11.29
2336 每日一题,使用提示set容器即可。花费了一点时间。
160 相交链表 没什么好说的
142 环形链表II 细节处理上还差一点


2023.11.30
1657 每日一题 这题看明白了没啥难度。
15 三数之和 确实看了眼题解,彩笔一个
做了同学给的位运算题目,很烧脑子


2023.12.1
每日一题 模拟即可,没啥难度
18 四数之和 就是三数之和加上一层for循环,n数之和就是枚举前n-2个数字,后边两个使用双指针查找

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值