友情支持
如果您觉得这个笔记对您有所帮助,看在D瓜哥码这么多字的辛苦上,请友情支持一下,D瓜哥感激不尽,😜
|
|
有些打赏的朋友希望可以加个好友,欢迎关注D 瓜哥的微信公众号,这样就可以通过公众号的回复直接给我发信息。

公众号的微信号是: jikerizhi。因为众所周知的原因,有时图片加载不出来。 如果图片加载不出来可以直接通过搜索微信号来查找我的公众号。 |
2026年 刷题日志
刷题日志
| 序号 | 题目 | 题解 | 备注 |
|---|---|---|---|
1 |
❌ 求连续序列长度,可以先去重,再寻找当前序列起点,从起点向后查找,出现断点,则当前序列结束。取所有序列中,最长值即可。 |
||
2 |
✅ 动态规划。楼梯顶部是比数组长度更长的一节。先写暴力破解,再备忘录,再进会到动态规划。 |
||
3 |
❌ 动态规划。在以往的思维定式中,爬楼梯总是: \(f(i)=f(i−1)+f(i−2)\)。这道题突破了这个思维定式,爬楼梯也可以:\(f(i) = \sum\limits_{j=0}^{n-1}{f(i-nums[j])}\)。 |
||
4 |
✅ 动态规划。爬楼梯解法:\(f(i) = f(i−zero) + f(i − one)\) |
||
5 |
✅ 动态规划。将字符串按照相同字符进行切割,根据加法原理,每个子串内部是“爬楼梯”:每个按键上面有 |
||
6 |
✅ 单调栈。统计出每个字符的数量,再加上一个是否添加过的标记,使用单调栈,将大的字符弹出,再添加小字符。这样就可以保证小字符尽可能在前面了。与 316. 去除重复字母 相同,不再赘述。 |
||
7 |
❌ 动态规划。有点脑筋急转弯!看答案也是一脸懵逼! |
||
8 |
✅ 动态规划。先只考虑一边的情况,再组合两边的情况。只考虑一边的情况,就是一个斐波那契数列: \(f(i) = f(i-1) + f(i-2)\)。 |
||
9 |
❌ 回溯。先找出波峰波谷节点,然后对波峰做全排列,针对每个排列与波谷求移动距离,最后取最小值。 |
||
10 |
❌ 滑动窗口。以为是回溯,但是回溯超时(152/182)。看答案,发现是滑动窗口。定长窗口,每次滑动距离为单词长度。 |
||
11 |
❌ 栈。也可以用动态规划。有一点想不明白,在使用标记数组时,为什么可以直接设置栈顶和当前元素指定下标为 |
||
12 |
✅ 单调栈。使用单调递增栈,有更高元素就压栈,有低于栈顶的元素,就出栈,计算栈顶元素到当前元素之间的面积。两边加上高度为 |
||
13 |
✅ 栈。栈为空,则入栈。不空,则比较最后一个字母和当前字母是否相同,相同则弹出,否则就追加。 |
||
14 |
❌ 动态规划。有点绕,需要把原始数组,按照伤害值转化成新的数组,这样就可以在新数组上,使用类似“打家劫舍”的套路来解题了。与“打家劫舍”套路不同的是,这里“选”的时候,前面被选择的项不是一个固定的项,是根据伤害条件选择出来的项。 |
||
15 |
❌ 动态规划。将题目转换成把石头分成两堆,求两堆重量的最小差值。那么,最小差值,就是两堆重量相等。那么,题目就转换成在一堆石头中选择一些石头让其重量尽可能达到总重量的一半。题目结果就是总重量减去二倍的选择石头最大可能拼凑出来的重量。这就是 0/1 背包问题了。 |
||
16 |
⭕️ 回溯。有思路,没写出来。看来回溯还是得多练啊! |
||
17 |
❌ 栈。官方题解的思路将括号展开。代码非常简洁,整体思路还要再思路一下。 |
||
18 |
❌ 位运算。每个数字的每位相加,除以 |
||
19 |
❌ 位运算。所有数字异或,相同的数字都会被抵消掉,只剩下只出现一次的数字。然后,根据二进制表示中最后出现的 |
||
20 |
⭕️ 动态规划。看到动态规划的提示,用矩阵模拟“凑数”给凑出来的解法。 |
||
21 |
✅ 深度优先遍历。需要记录符合“好叶子节点”的数量。无需记录所有路径,只需要记录符合要求的路径的数量即可。 |
||
22 |
✅ 前缀和。计算前缀和,并保存到 |
||
23 |
⭕️ 动态规划。这道题更好的解法是贪心算法。这次从动态规划的角度去看这个问题:“满仓”是继承或者买入;空仓则是继承或者卖出。 |
||
24 |
⭕️ 动态规划。在 题解 的基础上,增加了交易次数限制。思路懂了,边界条件总是不对。还要再思考。 |
||
25 |
⭕ 深度优先遍历。动态规划的题目,先用深度优先遍历暴力破解一下。题目理解错了:是最多经过 k 站中转。 |
||
26 |
❌ 动态规划。将每个值跟前面所有值相比,当比其大时,在其之上加一。动态规划总想直接从一个值中获取,没想到还需要遍历。 |
||
27 |
✅ 动态规划。 |
截止目前,本轮练习一共完成 27 道题。

