
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
也就是说,两个后缀的公共前缀长度,等于它们排名之间所有相邻 LCP 的最小值。先看一个题:给一个长度 10^5 的字符串,找出其中最长的重复子串(至少出现两次,可重叠)。如果我们把这些后缀按字典序排个队,许多公共前缀凑在一起,找重复子串就变成了找相邻后缀的公共前缀。特别像 KMP 的失配指针,它把所有房间串成一棵“后缀链接树”,这棵树就是后面统计出现次数的关键。,重复的子串就是所有相邻后缀的公共前
有效的括号:栈的括号匹配基础模型。最小栈:辅助栈技巧实现 O(1) 最小值查询。字符串解码:嵌套结构的栈处理。每日温度:单调栈找下一个更大元素。接雨水:单调栈或双指针解决面积问题。数组中的第K个最大元素:Top-K 问题的堆解法。熟练掌握这些题目,即可轻松应对面试中大部分栈、队列、堆相关的题型。下一篇预告:LeetCode 热题 100 精讲|二叉树基础篇:二叉树的中序遍历 · 二叉树的最大深度
区间四道热题全部围绕「排序 + 贪心」展开,属于算法中套路极强的一类题型。合并区间插入区间负责区间合并逻辑,最少箭无重叠区间负责区间选点模型,两两成对、相辅相成。吃透这四道题,遇到所有区间重叠、区间选择、区间合并类面试题都能快速套模板秒杀。下一篇预告LeetCode 热题 100 精讲 | 链表环与交点篇:环形链表 II · 相交链表 · 回文链表 · 排序链表持续更新连载。
堆与优先队列篇的三道题,每一道都是 Top K 或中位数问题的教科书式例题。第 K 个最大元素用固定大小的小顶堆维护前 K 大;前 K 个高频元素在统计频率后套用同样的堆思路;数据流的中位数则用两个堆实现了动态取中位数的神奇效果。这三种模型不光在面试里反复出现,在很多真实业务(比如实时排行榜、滑动窗口统计)里也经常用到。把这三种堆的用法刻进脑子里,以后再遇到类似的问题,基本都能秒反应。下一篇准备写
网络流是图论中一个极具实用价值的分支,它研究的是在带权有向图中,从源点流向汇点的最大流量问题。网络流模型广泛应用于物流运输、电路设计、任务调度、图像分割等领域。与之密切相关的二分图匹配则解决“如何为两类对象建立最佳配对”的问题。阅读指南:本文包含👇最大流:Ford-Fulkerson、Edmonds-Karp、Dinic 算法最小割:最大流最小割定理二分图匹配:匈牙利算法、KM 算法流程图:流程
单模匹配(实现 strStr())用 KMP 算法高效匹配;重复子串检测(重复的子字符串)考察对 next 数组的理解深度;单词拆分将问题转化为完全背包的 DP 模型。KMP 算法需要花时间理解 next 数组的含义,但一旦掌握,字符串匹配类的题目就能一通百通。单词拆分虽然归类为动态规划,但本质上也是字符串处理问题,可以用字典树优化查找效率。面试时建议先讲清楚暴力解法的局限,再引出 KMP 或 D
单模匹配(实现 strStr())用 KMP 算法高效匹配;重复子串检测(重复的子字符串)考察对 next 数组的理解深度;单词拆分将问题转化为完全背包的 DP 模型。KMP 算法需要花时间理解 next 数组的含义,但一旦掌握,字符串匹配类的题目就能一通百通。单词拆分虽然归类为动态规划,但本质上也是字符串处理问题,可以用字典树优化查找效率。面试时建议先讲清楚暴力解法的局限,再引出 KMP 或 D
计算几何篇介绍了四个基础模块:点积叉积、线段相交判断、凸包算法、多边形面积。这些工具是解决更复杂几何问题(如最近点对、旋转卡壳、半平面交等)的基石。面试中虽然直接考察计算几何的题目不多,但点积和叉积的应用(如判断点是否在矩形内、求点到直线的距离)偶尔会出现。掌握这些基础,遇到几何问题就能从容应对。下一篇将进入字符串匹配篇(KMP、Boyer-Moore、Rabin-Karp、AC 自动机),敬请期
Fisher-Yates 洗牌(打乱数组)保证所有排列等概率出现;前缀和+二分(按权重随机选择)实现了加权随机采样;数学归纳(飞机座位概率)展示了概率问题的推导逻辑;拒绝采样(Rand7 实现 Rand10)是分布转换的经典技巧;蓄水池抽样(链表随机节点)解决了数据总量未知时的均匀采样问题;蒙特卡洛模拟(生日悖论)则展示了随机抽样在概率估算中的强大能力。掌握这些模型,面试中遇到随机化相关的问题就能
覆盖范围最优化(跳跃游戏)、最少步数(跳跃游戏 II)、环形路径问题(加油站)、利润最大化(买卖股票)、数值调整(K 次取反)、区间调度(无重叠区间)。贪心的核心在于发现“局部最优能推导全局最优”的性质,虽然证明有时较难,但掌握了这些经典模型,遇到类似问题就能快速找到切入点。建议刷题顺序:先做 55 和 122 建立贪心思维,再做 45 和 1005 挑战更复杂的状态维护,然后做 134 理解环形







