![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LeetCode
文章平均质量分 65
oj
Ypuyu
Ypuyu
展开
-
[LeetCode] LeetCode题解汇总
每日一题嗯,也就没事刷会力扣~全部收集到我的 LeetCode 同名专栏,部分经典问题会针对性收集到 算法与数据结构基础 子专栏。查找题目建议 Ctrl+F若链接有误,希望能够私信博主~~我会及时修改,十分感谢各位同学的帮助!!!如若能够帮到你,我很高兴。每日一题CSND博客详解链接:题目分类注意M94. 二叉树的中序遍历二叉树经典M129. 求根到叶子节点数字之和二叉树+dfsM143. 重排链表链表反转+链表M144. 二叉树的前序遍历原创 2020-10-29 21:16:47 · 480 阅读 · 1 评论 -
[M二叉树] lc199. 二叉树的右视图(dfs+自顶向下+好题)
【代码】[M二叉树] lc199. 二叉树的右视图(dfs+自顶向下+好题)原创 2024-08-31 15:39:56 · 130 阅读 · 0 评论 -
[E二叉树] lc110. 平衡二叉树(dfs+自底向上)
【代码】[E二叉树] lc110. 平衡二叉树(dfs+自底向上)原创 2024-08-31 15:34:19 · 89 阅读 · 0 评论 -
[E二叉树] lc101. 对称二叉树(dfs+自底向上)
【代码】[E二叉树] lc101. 对称二叉树(dfs+自底向上)原创 2024-08-31 15:26:51 · 151 阅读 · 0 评论 -
[E二叉树] lc100. 相同的树(dfs+自底向上)
【代码】[E二叉树] lc100. 相同的树(dfs+自底向上)原创 2024-08-31 15:19:07 · 162 阅读 · 0 评论 -
[E二叉树] lc104. 二叉树的最大深度(dfs+自顶向下)
【代码】[M二叉树] lc104. 二叉树的最大深度(dfs+自顶向下)原创 2024-08-31 12:10:33 · 214 阅读 · 0 评论 -
[M模拟] lc3153. 所有数对中数位不同之和(模拟+按位统计)
简单题,数据范围很小,简单做即可。原创 2024-08-30 01:12:26 · 270 阅读 · 0 评论 -
[M链表] lc237. 删除链表中的节点(链表删除+脑筋急转弯)
本题在我 21年 校招的时候好像还出现过哈哈,不过当时是口述的题目要求。算是一个脑筋急转弯问题吧。原创 2024-08-30 00:08:17 · 308 阅读 · 0 评论 -
[M链表] lc142. 环形链表 II(快慢指针+数学推导+基础题)
这个是很经典的题目哈,简单做的话,直接上哈希表就完事了。反正只会有一个环节点,但实际上背后隐藏着数学做法,可以尝试推导一下。原创 2024-08-29 00:23:52 · 335 阅读 · 0 评论 -
[E链表] lc141. 环形链表(快慢指针+基础题)
【代码】[E链表] lc141. 环形链表(快慢指针+基础题)原创 2024-08-28 23:48:59 · 411 阅读 · 0 评论 -
[E链表] lc876. 链表的中间结点(快慢指针+基础题)
【代码】[E链表] lc876. 链表的中间结点(快慢指针+基础题)原创 2024-08-28 23:42:41 · 357 阅读 · 0 评论 -
[M链表] lc92. 反转链表 II(反转链表+基础题)
反转链表的核心在于 a, b, c 起始位置及终止位置。反转链表的一个小变种,抓住核心即可。原创 2024-08-27 23:48:10 · 339 阅读 · 0 评论 -
[Mdfs] lc690. 员工的重要性(dfs+bfs+离线询问+问题拓展+基础题)
简单题目,直接 dfs 遍历子树每个节点,累加起来对应的值即可。当然,bfs 写法也非常直观,不赘述。原创 2024-08-27 01:20:43 · 423 阅读 · 0 评论 -
[M二分] lc153. 寻找旋转排序数组中的最小值(二分+边界情况+好题)
这也提示我们一个技巧,可以通过一定的边界、情况的特判,将这些易出错的点特殊处理,再去考虑主体代码的实现。一道不错的二分题目。有两种写法,但两种写法的边界情况各不相同,需要考虑清楚。原创 2024-08-27 01:02:19 · 312 阅读 · 0 评论 -
[M二分] lc162. 寻找峰值(二分+思维+好题)
【代码】[M二分] lc162. 寻找峰值(二分+思维+好题)原创 2024-08-26 22:34:40 · 659 阅读 · 0 评论 -
[M模拟] lc3265. 统计近似相等数对 I(模拟+代码实现+分类讨论+周赛412_2)
上面的模拟情况多,容易错…这场周赛并没有参加,补下题。原创 2024-08-25 17:58:32 · 785 阅读 · 0 评论 -
[Mdfs] lc473. 火柴拼正方形(剪枝优化+经典题+好题)
和之前的一个问题一模一样,在此不再赘述,写出来方便搜索。原创 2024-08-25 06:48:50 · 241 阅读 · 0 评论 -
[Mdfs] lc698. 划分为k个相等的子集(剪枝优化+经典题+好题)
本题十分经典、重要。4 大剪枝方法缺一不可。具体的剪枝方法正确性的证明可以去看看。原创 2024-08-25 05:03:10 · 405 阅读 · 0 评论 -
[M双指针] lc209. 长度最小的子数组(双指针+好题)
所以,针对问题,还需要具体分析。原创 2024-08-23 03:17:44 · 403 阅读 · 0 评论 -
[M双指针] lc713. 乘积小于 K 的子数组(双指针+好题)
经典的 双指针、滑动窗口 问题。原创 2024-08-23 03:02:23 · 297 阅读 · 0 评论 -
[M位运算] lc3133. 数组最后一个元素的最小值(位运算+思维+好题)
一道挺有意思的题目。注意位运算这里,也可能会爆 LL。原创 2024-08-23 00:04:07 · 403 阅读 · 0 评论 -
[H数学] lc3257. 放三个车的价值之和最大 II(组合数学+记忆化搜索+好题)
记忆化搜索的话,配合哈希表存储状态,是可以做,但也需要一定的技巧,如灵神记忆化搜索中写的将状态压缩到 LL 中。一些边界情况又要考虑清楚。估计也就是练练手就忘的程度。这里 k 取值范围较小,所以可以在 int 范围内枚举完毕。但还是需要注意在枚举 2^n 的时候爆 int 的问题…乘到最后一个位置的时候,将爆 int…如果想到是 dp 的话,确实一时半会还弄不出来,因为这个数组范围不确定,都不知道开多大。正解还得是组合数学。原创 2024-08-20 02:00:15 · 1268 阅读 · 0 评论 -
[Hdp] lc552. 学生出勤记录 II(dp+递推+状态定义+状态转移+向前转移+好题)
一道正常的线性dp 问题吧,状态定义和转移都不太难。分类讨论三种情况就行了。看到 y 总写了一个根据当前状态向前进行状态转移的方法,感觉还是值得记录一下的。避免某些情况下比较难写。可以对比下常规的状态转移方式和本次的状态转移方式,体会一下区别。包括这个代码实现也是,细节点在于 i<n 的,因为在 i=n-1 时,会递推出来 i+1=n 的这一项状态值,所以也能算出结果。另外也贴一下普通的状态转移代码,体会一下两者不同之处。原创 2024-08-19 01:12:39 · 455 阅读 · 0 评论 -
[Mdp] lc3259. 超级饮料的最大强化能量(dp+状态表示+状态转移+状态机dp+周赛411_2)
至于状态初始值的定义,因为第二种状态转移思路有个 i-2 这个操作,且当 i=1 的时候,i-2 还是会受到这个影响,此时可以考虑将空间统一开大一个,做一下偏移即可,也是一个常用技巧吧。一道不错的 T2,直接上来就是 dp。想着会不会是一个贪心题目,就写了写,WA 了 2 发后实在顶不住了,换个思路考虑,dp,秒过…原创 2024-08-18 14:44:08 · 868 阅读 · 0 评论 -
[H模拟] lc3257. 放三个车的价值之和最大 II(模拟+暴力枚举+双周赛137_1+双周赛137_2)
我也搞不懂,为什么当时会写一个 dfs 去做这个题目,不如直接 for for for 完事了,思路没有想好,想歪了又很难更正过来啊…这一套暴力枚举思想很直接,但实现上比较简洁,代码常数小,所以还是可以通过的。蛙神针对这个题目,做了复杂度分析。还是比较有参考价值的,可以看看。目前没看到什么好的题解,计算量计算正确的话,直接暴力枚举就行了。看看 蛙神 的题解和代码实现即可,这里直接 CV 过来吧。原创 2024-08-18 02:00:33 · 347 阅读 · 0 评论 -
[M前缀和] lc3255. 长度为 K 的子数组的能量值 II(前缀和+二分+双周赛137_1+双周赛137_2)
本来好好的一个前缀和问题,被我硬生生搞成二分,最近研究了下整数二分的题目,本想实践一下,就花了较多实践。原创 2024-08-18 01:30:59 · 316 阅读 · 0 评论 -
[M前缀和] lc3148. 矩阵中的最大得分(前缀和变种+二维前缀和+脑筋急转弯+好题)
类似模拟的 dp 超时了…时间复杂度确实太高。原创 2024-08-15 01:57:16 · 261 阅读 · 0 评论 -
[M前缀和] lc3152. 特殊数组 II(前缀和变种+二分+lower_bound操作+好题)
本题思路比较明确哈。首先自己想的是二分的思路,但碍于一些细节,代码没有写出来,但思路没啥问题。看题解用的是前缀和的思路,是正解,更加简单直接。官解中用的 dp,没啥必要在这里。明显,前缀和思路考虑问题更加少,代码也十分好写。原创 2024-08-14 04:11:30 · 973 阅读 · 0 评论 -
[M字典树] lc676. 实现一个魔法字典(字典树+树上dfs+好题)
需要注意一个点,当字符串完全出现了也不算做有效答案哈,必须要改变一个字符才可以。所以第一遍写的答案就没有通过…关键是:如何体现恰好有几个字母不同这个条件?原创 2024-08-12 01:53:27 · 403 阅读 · 0 评论 -
[Hdp] lc3250. 单调数组对的数目 I、II(dp+状态表示+状态转移+前缀和优化dp+周赛410_3+周赛410_4)
首先 Q3 题应该要能做出来的。但这也需要对题目有一个完整的分析和理解。个数,且 arr1[i] = j 的方案数。关于 T4 来看,需要优化掉内层的循环。原创 2024-08-11 21:26:41 · 430 阅读 · 0 评论 -
[M模拟] lc3249. 统计好节点的数目(dfs+图遍历+统计子树节点个数+周赛410_2)
如果用 lambda 表达式来写 dfs 函数的话,就不会有这个问题…可能是 1e5 的情况下,传参太耗时间了吧,没搞懂这个问题。挺不错的题目,思路本身并不难,但是比赛中的写法一直被最后一个样例卡,且比赛完后,还是被最后一个样例卡…原创 2024-08-11 15:43:08 · 468 阅读 · 0 评论 -
[H贪心] lc3244. 新增道路查询后的最短距离 II(贪心+读题+代码实现+周赛409_3)
那么思路就比较明确了,当遇见一个大的 query 区间,只需要将这个大 query 区间中的所有小区间全部弹出即可,因为步长是 1,所以有效的区间个数即为最短路长度。结果没读好题目,题目说明 query 的所有查询是不会有 相交但不包含 的关系的。也就是说,所有的查询,要么不想交,要么将包含一些小区间在里面。以为是最短路算法,或者是堆优化 dij 又有什么神奇的性质被我遗忘了?原创 2024-08-04 13:11:42 · 207 阅读 · 0 评论 -
[M模拟] lc3240. 最少翻转次数使二进制矩阵回文 II(分类讨论+遍历技巧+代码实现+双周赛136_3)
对于中心点来看,3*3 棋盘,【1,1】点不会被我们遍历到,那么如果要被 4 整除,【1,1】 这类点一定需要为 0,所以最终累计下【1,1】是否需要操作即可。对于 n/2、m/2 这个区域里面的点肯定有回文的 右、下、右下 这三个点。直观来看,要么都是 0,要么都是 1。如果 cnt 为 0,说明大家都是想等的,但是 one 却是奇数的话,说明我们需要将两个 1、1 变为 0、0,使其能被 4 整除。但是这样的话,我们是没有考虑对称轴 n/2 这一行,m/2 这一列的,根本遍历不到…原创 2024-08-04 05:00:02 · 819 阅读 · 0 评论 -
[E二叉树] lc572. 另一棵树的子树(dfs嵌套+前中序判断+树哈希+树上KMP+好题)
还是简单粗暴一点,直接搞一个 前序+中序,进行判断即可。我们知道通过 前序+中序,是可以构建出一颗唯一的二叉树的,当然可以通过 前序+中序,去判断两颗二叉树是不是一样的。每个点,都可能是目标子树的根节点,同时我们需要判断当根节点确定时,该根节点的子树是否等于目标子树。看到这个题目就感觉不简单,因为写了写 dfs 版本的,发现好像不太会…评论区有提到 树上 HASH 的方法字节面试过…至于其他的写法,看官解吧。前、中 序判断二叉树。原创 2024-08-04 04:48:25 · 589 阅读 · 0 评论 -
[M二分] lc3143. 正方形中的最多点数(二分答案+代码实现+模拟)
在这里重点看看如何 二分答案 吧,一些有经验的选手,第一反映反而是 二分答案。模拟是一个比较常见的思路,代码写的也算顺利吧,有一些条件没有考虑清楚,WA 4 次…二分答案是一种算法思维哈,着重关注下。原创 2024-08-03 03:30:43 · 279 阅读 · 0 评论 -
[E模拟] lcLCP 40. 心算挑战(模拟+分类讨论+高质量模拟+代码实现)
官方题解写了有哈希啥的,暂时没想看,跟题目给出的值域有关,通过哈希的方式,避免了排序,将时间复杂度做到了 O(n),但感觉在这没太大必要,有兴趣去研究下吧。看到有一个前缀和解法的,也比较有意思。奇偶完全分类讨论,一直枚举偶数个奇数,保证结果是 偶数个奇数+偶数,用前缀和 O(1) 算出其和。挺有意思的一道分类讨论题目。如果纯是分类讨论的话,细节比较多,讨论清楚进行代码实现即可。原创 2024-08-01 02:54:25 · 273 阅读 · 0 评论 -
[H单调栈] lc3113. 边界元素是最大值的子数组数目(单调栈+问题转换+模板题+好题)
【代码】[H单调栈] lc3113. 边界元素是最大值的子数组数目(单调栈+问题转换+模板题+好题)原创 2024-08-01 01:02:46 · 292 阅读 · 0 评论 -
[H并查集] lc3235. 判断矩形的两个角落是否可达(并查集+高质量+周赛408_4)
十分不错的题目哈,关键是题意的转换。将每个圆视作一个集合,且将 上边、左边 视作一个集合,右边、下边 视作一个集合。当 上边、左边,与 右边、下边 所处同一集合的话,那么认为此时已经被封锁,已经无法到达。原创 2024-07-29 00:23:20 · 417 阅读 · 0 评论 -
[M数学] lc3233. 统计不是特殊数字的数字数量(筛素数+埃式筛+线性筛+周赛408_2)
挺有意思的一个题目哈,思路转换到后面就是找到。区间内部的所有质数平方的个数。原创 2024-07-28 23:07:09 · 267 阅读 · 0 评论 -
[M模拟] lc2844. 生成特殊数字的最少操作(简单易错+分类讨论+代码优化技巧)
模拟题目,看着很简单,但是如何把代码写对、写的效率高,还是需要些技巧的。原创 2024-07-26 00:20:41 · 524 阅读 · 0 评论