
LeetCode
文章平均质量分 68
oj
Ypuyu
Ypuyu
展开
-
[LeetCode] LeetCode题解汇总
每日一题嗯,也就没事刷会力扣~全部收集到我的 LeetCode 同名专栏,部分经典问题会针对性收集到 算法与数据结构基础 子专栏。查找题目建议 Ctrl+F若链接有误,希望能够私信博主~~我会及时修改,十分感谢各位同学的帮助!!!如若能够帮到你,我很高兴。每日一题CSND博客详解链接:题目分类注意M94. 二叉树的中序遍历二叉树经典M129. 求根到叶子节点数字之和二叉树+dfsM143. 重排链表链表反转+链表M144. 二叉树的前序遍历原创 2020-10-29 21:16:47 · 578 阅读 · 1 评论 -
[M数学] lc2829. k-avoiding 数组的最小总和(推公式+贪心模拟+好题)
显然本题有数学解法,自己在考虑写的时候也是往这边在想,最终并没有推导的很完善吧,在一些边界情况下没有统一处理,还是分情况讨论的。这个贪心模拟的思路很不错哈,能够快速解决本题。一开始想的时候想到了二数之和,但没有考虑到这个写法。2025年03月27日00:01:32。这个分界点的位置就很关键,记为 m。这里有一些奇偶性的判断吧,比如。原创 2025-03-27 00:32:54 · 437 阅读 · 0 评论 -
[M模拟] lc2711. 对角线上不同值的数量差(对角线遍历+前后缀分解)
2025年03月25日21:21:28。原创 2025-03-25 21:47:43 · 506 阅读 · 0 评论 -
[M模拟] lc3446. 按对角线进行矩阵排序(对角线遍历+公式推导+模板题)
其中对角线遍历在 八皇后 问题中还遇见过,正对角线,反对角线,两种。其实就是对角线上的点的 和、差 是有一定规律的。这里简单写一个对角线遍历的模板吧,其他的都是同理。2025年03月25日18:10:00。原创 2025-03-25 18:13:05 · 505 阅读 · 0 评论 -
[M模拟] lc2116. 判断一个括号字符串是否有效(思维+括号匹配问题+问题分析+代码实现)
这个题目,灵神 的分析十分十分巧妙,很值得多读几遍。也是从本题中,能窥看到 括号匹配 问题的内在本质。至于代码实现过程,不需要真的去维护这个取值集合。而是关注这个集合中的最大值、最小值即可。以上是常规的匹配过程,但对本题来说,有部分下标可以变成左括号、右括号 其中一种。先记录在此,看看什么时候复习的时候想不起来了,再来复习hh…这个写法十分巧妙,且容易理解,包括灵神的例子也十分巧妙。2025年03月23日16:44:59。原创 2025-03-23 16:57:57 · 860 阅读 · 0 评论 -
[Mdfs] lc93. 复原 IP 地址(dfs+剪枝优化+判断IP标准库)
主要思想和 子集 啥的,差不多,就是在两个字符之间填 “.” 进去做分割。看看能填几段,或者将此题理解成将字符串分成 4 段,判断是否构成合法 IP 也行。一道经典的 dfs 问题,但是有很多可以剪枝的地方需要注意。具体的见代码注释即可。原创 2025-03-03 01:10:41 · 497 阅读 · 0 评论 -
[Hdp] lc132. 分割回文串 II(回文串预处理优化+dp顺序+dp初始化+dp边界)
涉及到枚举回文串,以及 DP 拓扑序的理解。很经典的一道 DP 问题,包括这个前置题。原创 2025-03-02 01:57:07 · 596 阅读 · 0 评论 -
[M数据结构] lc2353. 设计食物评分系统(数据结构+set 平衡树+懒删除堆)
这种 平衡树、优先队列的,暂时拿 go 还写不了,没有合适的板子用。就先拿 C++ 写吧,日后看看啥时候会补齐这个板子。原创 2025-03-01 21:51:16 · 572 阅读 · 0 评论 -
[H滑动窗口] lc239. 滑动窗口最大值(模拟+数据结构+单调队列+滑动窗口模板题)
看看日后有没有写不出来来补题、或者有新感悟的时候再来看看。注意一下 C++ 中双端队列的用法即可。一道单调队列模板题,不赘述了吧。原创 2025-02-25 20:35:57 · 639 阅读 · 0 评论 -
[H数据结构] lc1206. 设计跳表(模拟+数据结构+跳表实现+优秀博文)
其在 Redis 和 levelDB 中都有用到。这里我仅做 golang 版本的代码实现,算是一个算法模板。本题是一个非常优秀的数据结构,跳表。原创 2025-02-24 18:49:06 · 499 阅读 · 0 评论 -
[M二分] lc2080. 区间内查询数字的频率(模拟+二分+数据结构+Go二分库函数+知识总结)
因为我的 l,r := 0, n-1 这样的设定下,注定他们和 lower_bound 的返回效果不可通用。当我再使用这个模板处理当前问题的时候,或者说我希望自己去实现 lower_bound、upper_bound 操作的时候,发现板子是用不了的。显然,lower_bound 求解是无解状态,那么会返回下标 2,upper_bound 求解也是无解状态返回 2。因为没加结果的判断,导致二分模板求解出来的值和实际上 lower_bound、upper_bound 是不符的。我所习惯使用的整数二分模板,原创 2025-02-18 19:38:24 · 1016 阅读 · 0 评论 -
[M二分] lc1760. 袋子里最少数目的球(二分答案+数学推导+GoLang使用技巧)
【代码】[M二分] lc1760. 袋子里最少数目的球(二分答案+数学推导+GoLang使用技巧)原创 2025-02-13 19:11:06 · 782 阅读 · 0 评论 -
[H贪心] lc135. 分发糖果(贪心+前后缀分解+左右拆分+算法技巧)
综上,本题蕴含着 前后缀分解 的意思。如果题中有 左右同时 这种强规则的话,不妨分成左、右两个方向去进行考虑。原创 2025-02-11 12:59:46 · 204 阅读 · 0 评论 -
[M模拟] lc238. 除自身以外数组的乘积(前后缀分解+空间优化)
位置的值是 [0, i-1] 所有元素的乘积哈。具体看看代码,体会一下前后缀分解和空间优化的做法。细节就注意下,前后缀分解的。原创 2025-02-10 00:25:40 · 380 阅读 · 0 评论 -
[M模拟] lc380. O(1) 时间插入、删除和获取随机元素(模拟+数据结构+脑筋急转弯+数组快捷删除技巧+项目思考)
其实这个题目抽象一下的话在项目中也能出现,可能日常项目中没有算法基础的话,就很容易直接去进行新内存开辟、重复遍历等操作。尤其是在哈希表删除后,又需要进行一个相同概率返回的这个操作的时候。常见就有重新遍历哈希表到临时数组对象中,然后再依靠 rand 函数进行返回。具体的看下如下代码即可,代码好理解,但如何运用到项目中去显著提高业务响应速度是值得我们去深思斟酌的。的,在高并发场景下,这就是妥妥的项目坑点啊。的,那么整体的时间复杂度就是妥妥的。次的查询情况下每一个遍历都是。原创 2025-02-09 23:48:12 · 1016 阅读 · 0 评论 -
[H排序] lc2931. 购买物品的最大开销(排序+最小堆+脑筋急转弯)
【代码】[H排序] lc2931. 购买物品的最大开销(排序+最小堆+脑筋急转弯)原创 2024-12-12 01:18:14 · 349 阅读 · 0 评论 -
[M最短路] lc743. 网络延迟时间(spfa最短路+单源最短路)
怎么讲呢,挺抽象的…很久没写最短路算法了。反正也是写出来了,但脱离了模板,把自己还给绕进去了…以下是 y 总写的 spfa 模板,大同小异。2024年11月26日00:08:57。这里不知道随便写的 spfa 也过了…至于具体的算法思想,看相关链接即可。这块还是按照模板来写吧。原创 2024-11-26 00:09:31 · 614 阅读 · 0 评论 -
[H区间dp] lc312. 戳气球(状态定义+边界处理+技巧题+好题+难题)
很经典的区间 dp 问题,也算是套路问题了。原创 2024-11-12 00:45:21 · 425 阅读 · 0 评论 -
[M模拟] lc3175. 找到连续赢 K 场比赛的第一位玩家(模拟+脑筋急转弯+思维+好题)
乍一看,题目条件花里唿哨的。其实就是打擂台,两人PK,输的就排到末尾,看谁能率先连赢 K 局。原创 2024-10-24 01:06:41 · 452 阅读 · 0 评论 -
[M数学] lc3164. 优质数对的总数 II(因数分解+倍增+推公式+思维+好题)
挺不错的一道 因数分解、倍增 的题目,需要一定的思维和推公式的能力才能解决。灵神的题解已经非常清晰易懂了,可以直接去看。这个东西分析有点难度,见灵神的分析吧…原创 2024-10-11 17:58:46 · 562 阅读 · 0 评论 -
[M贪心] lc134. 加油站(枚举优化+贪心+单调队列优化+思维)
很不错的一个枚举、贪心优化的一个思路。原创 2024-10-08 00:19:31 · 1007 阅读 · 0 评论 -
[M滑动窗口] lc3305、lc3306. 元音辅音字符串计数 I、II(恰好型滑动窗口+双指针+思维+代码实现)
【代码】[M滑动窗口] lc3305、lc3306. 元音辅音字符串计数 I、II(恰好型滑动窗口+双指针+思维+代码实现)原创 2024-10-01 02:13:44 · 424 阅读 · 0 评论 -
[M贪心] lc2207. 字符串中最多数目的子序列(模拟+贪心+一次遍历+代码细节+思维)
基于上述思路,能很快的写出简洁的代码。原创 2024-09-24 02:28:24 · 912 阅读 · 0 评论 -
[M滑动窗口] lc3297、lc3298. 统计重新排列后包含另一个字符串的子字符串数目 I、II(滑动窗口+线性优化+周赛416_3++周赛416_4+好题)
这个是滑动窗口中很经典的问题了。这里实际上有两种做法,包括。中也提到了有两种做法。这里的 方法二,甚至比。原创 2024-09-23 03:21:46 · 993 阅读 · 0 评论 -
[M二分答案] lc3296. 移山所需的最少秒数(二分答案+周赛416_2+好题)
值得注意的是,这里不仅需要二分时间这个答案值,在计算每个工人能挖掘的最大高度的总和时,也是需要通过二分来进行计算的。因为对于限定的 t 时间下,工人最多的挖掘高度无非就是 mountainHeight,工人挖掘速度为 1,那么这里的挖掘高度就等价于工人挖掘的时间。判断它是否在 t 时间内。超过了说明挖不到 mid 高度,反之则可以挖到 mid 高度。同样一道很经典的二分答案问题哈。原创 2024-09-23 02:22:30 · 486 阅读 · 0 评论 -
[Mdp] lc516. 最长回文子序列(区间dp+状态定义+状态转移+好题)
二维 dp 下,不一定需要两个字符串,只需要有两个状态点,加上 选/不选 的问题下,就能 LCS 的状态细分、讨论的手段。本题是个很经典的区间 dp 问题,采用了 LCS 的状态转移讨论方式。区间dp 一道不错的练手题。原创 2024-09-16 20:32:06 · 575 阅读 · 0 评论 -
[Mdp] lc3290. 最高乘法得分(二维dp+状态定义+状态转移+LCS问题+好题+周赛415_2)
挺不错的题目,纠结了一会贪心解法,但是没有什么卵用,证明不出来,代码难写。还是老老实实回归到 dp 求解吧。简洁写法:更容易理解。原创 2024-09-15 13:31:04 · 1172 阅读 · 0 评论 -
[M滑动窗口] lc2555. 两个线段获得的最多奖品(滑动窗口+同向双指针+代码技巧)
挺有意思的一道题目,同向双指针+简单dp 的思想。原创 2024-09-14 21:08:50 · 921 阅读 · 0 评论 -
[M二分答案] lc2576. 求出最多标记下标(二分答案+同向双指针+贪心)
本题还挺有意思的哈。有几种较为直观的贪心思路,却都是错误的。正解思路:二分答案,同向双指针。原创 2024-09-12 23:04:11 · 400 阅读 · 0 评论 -
[Mdp] lc309. 买卖股票的最佳时机含冷冻期(状态机dp+股票买卖模型+经典问题)
强相关,在 状态机 dp 问题上是强相关的。贪心解在此就失效了。体会一下两者的不同。原创 2024-09-11 02:59:37 · 440 阅读 · 0 评论 -
[Mdp] lc1143. 最长公共子序列(lcs+模板题+经典题)
至于有一维优化版本,但不需要考虑这么多哈,重点在时间而非空间,暂时还没遇到非去卡空间的题目。纯模板题,两种讨论方式,不赘述。原创 2024-09-10 00:49:23 · 476 阅读 · 0 评论 -
[Mdp] lc198. 打家劫舍(记忆化搜索+dp)
记忆化搜索可以处理,是自顶向下进行枚举的,属于 递归。思路:dfs 记忆化搜索。动态规划,属于 递推。原创 2024-09-07 02:10:13 · 528 阅读 · 0 评论 -
[Mdfs] lc216. 组合总和 III(组合类型枚举+题目总结+经典)
至于 选不选 的写法,暂时略过吧。原创 2024-09-06 01:59:40 · 340 阅读 · 0 评论 -
[Mdfs] lc131. 分割回文串(子集型枚举+选不选+选不选细节+回文串预处理优化+dp枚举顺序+好题)
子集型回溯的拓展题目,看看如何进行问题转换。以及代码优化,很有价值的一道题目哈。for 循环枚举划分位置。原创 2024-09-05 02:18:08 · 1100 阅读 · 0 评论 -
[M二叉树] lc513. 找树左下角的值(bfs+层序遍历+拓展)
dfs 的思路在此暂不涉及哈。原创 2024-09-04 02:14:26 · 393 阅读 · 0 评论 -
[M二叉树] lc103. 二叉树的锯齿形层序遍历(队列+bfs)
【代码】[M二叉树] lc103. 二叉树的锯齿形层序遍历(队列+bfs)原创 2024-09-04 02:07:40 · 352 阅读 · 0 评论 -
[M排序] lc2860. 让所有学生保持开心的分组方法数(排序+贪心+简洁代码实现+思维)
官解中根据划分长度来考虑会更加合适,即:枚举分组长度为 0、1、2、3、…n 这样子更加合适。包含了这两种特殊的情况。,一开始直接根据下标考虑,直接从下标 0 开始判断,且最终直接来了个 i+1 的判断逻辑,遗漏了这两种情况。有一定的思考难度,不太好归类,就放到 思维 里面吧。具体证明,看靠前题解即可。描述起来有点困难,不赘述。代码实现上需要注意下,原创 2024-09-04 01:19:41 · 326 阅读 · 0 评论 -
[M二叉树] lc236. 二叉树的最近公共祖先(dfs+二叉搜索树)
很经典的题目哈,二刷的时候,再注意下非递归写法吧。原创 2024-09-02 01:58:59 · 498 阅读 · 0 评论 -
[M二叉树] lc235. 二叉搜索树的最近公共祖先(dfs+二叉搜索树)
很经典的题目哈,二刷的时候,再注意下非递归写法吧。原创 2024-09-02 01:40:33 · 546 阅读 · 0 评论 -
[M二叉树] lc98. 验证二叉搜索树(dfs+多方法+前中后序+算法思维)
很经典的题目哈,之前只知道是一个有序序列判断就行了,也没有怎么去深究。灵神讲了三种方法,结合 前中后 序来进行题目处理,也是蛮不错的想法哈。原创 2024-09-02 00:52:14 · 1086 阅读 · 0 评论