爱奇艺算法岗笔试拆解:从KMP到机器学习的高频考点与实战策略

发布时间:2026/8/29 6:44:49
爱奇艺算法岗笔试拆解:从KMP到机器学习的高频考点与实战策略 爱奇艺2020校招算法方向笔试题第一场——我当年也是从这套题里摸爬滚打出来的。很多同学私信问我大厂算法岗笔试到底考什么我翻了翻当年的记录发现这套题特别有代表性它不光是考你“会不会写代码”更多是考“你有没有算法思维”。尤其是那些看起来基础的数据结构题稍不留神就会掉进坑里。这篇文章我就从这套题出发把算法岗笔试里最常出现的几类考点——KMP、排序、贪心、机器学习基础、信号处理算法、工程安全算法——逐个拆开讲附带我当时踩过的坑和总结的应考思路。无论你是正在备战秋招的应届生还是想转行做算法的工程师这篇都能给你一些参考。1. 算法岗笔试不是刷题竞赛从爱奇艺这套题看考察逻辑先说一个很多人容易搞错的认知算法岗笔试和开发岗笔试的筛选逻辑完全不一样。开发岗笔试重点看你能不能把功能写出来代码能不能跑通但算法岗笔试更看重的是你面对一个模糊问题时能不能把它抽象成数学模型能不能选出合适的算法能不能考虑到边界条件和复杂度瓶颈。爱奇艺2020校招这一场表面看是“算法题”实际上是在用题目筛选“具备算法素养的人”。我记得当时的题目结构大致分三块基础数据结构与算法、机器学习/深度学习基础、少量工程交叉题。这种配置在大厂算法岗里非常典型。为什么要这样设置因为算法岗日常工作并不是天天推公式、调模型更多时候是在处理数据、优化检索流程、设计特征、调参、评估效果。你需要懂数据结构来写高效的工程代码需要懂机器学习原理来解释模型行为还需要有足够的数学功底来理解损失函数、正则化、复杂度分析的来龙去脉。还有一个容易被忽视的点这套题里很多名词在当时的“热门算法清单”里都能找到影子比如KMP、粒子群、PID、卡尔曼滤波、重采样、BM25、Rete算法等等。这说明什么说明大厂出题不是只盯着leetcode而是会结合自己的业务场景来发散。爱奇艺做视频音频重采样、图像处理、推荐排序都是实际需求腾讯视频那套ckey签名算法也被拿来讨论本质上是想知道你有没有工程安全意识。所以备考算法岗不能只看题还得理解这些算法在真实业务里解决什么问题。我自己的体会是算法岗笔试更像一场“压力下的思维体检”。题目不一定多难但范围特别广时间又紧。比如给你一个KMP的next数组题你不仅要会算还要能解释这个数组的意义给你一个排序算法题你要知道为什么某些场景下快排会退化、为什么归并排序是稳定的。这些“为什么”才是笔试真正的区分度所在。所以这篇文章我不打算只给你“答案”而是带你把每个核心考点背后的逻辑、原理、实际应用梳理清楚。这样无论题目怎么变你都能找到对应的解题思路。2. 数据结构与经典算法KMP、排序与贪心的实战考法2.1 KMP算法的next数组定义不同答案完全不同热词里有一道很经典的题模式串 pabacabanext数组怎么求。很多人一上来就懵原因是next数组有“从0开始”和“从1开始”两种定义不同教材、不同出题人给的规则不一样算出来的结果可能完全不同。先说清楚一个核心概念next数组记录的是“当匹配失败时模式串应该回退到哪里”。它本质上是在利用已经匹配的前缀和后缀信息避免从头再匹配。对于abacaba这个串我们先求它的前缀后缀最长公共长度也就是常说的PMT部分匹配表位置i字符前缀后缀最长公共长度1a02ab03aba14abac05abaca16abacab27abacaba3如果next数组定义为“当前位置之前的最大公共前后缀长度”那结果就是next[1] 0 next[2] 0 next[3] 1 next[4] 0 next[5] 1 next[6] 2 next[7] 3但如果题目把next定义为“失配时移动到的位置”通常会整体左移一位即next[1]-1然后next[i]前一个位置的最长公共长度。这种情况下答案会是-1, 0, 0, 1, 0, 1, 2。两种答案没有谁对谁错关键是你在考场上一定要先看清楚题目给的定义。我当年就吃过这个亏上来默认按第二种算结果题目要求的是第一种丢了一道送分题。KMP的实用性在笔试中其实被高估了它更多是考察“你是否理解字符串匹配为什么能加速”。我建议准备时把next数组的构建代码自己写一遍别只看不练。构建过程本质是“用模式串匹配自己”vectorint buildNext(string p) { int m p.size(); vectorint next(m, 0); int j 0; for (int i 1; i m; i) { while (j 0 p[i] ! p[j]) { j next[j - 1]; } if (p[i] p[j]) j; next[i] j; } return next; }这段代码里最核心的是while循环里的回退逻辑它不是在i前面来回找而是利用已经算好的next数组把j跳到之前最长匹配的位置。理解了这个KMP基本就通了。2.2 排序算法考试不考“会不会写”考“为什么选它”排序是校招笔试的常客但爱奇艺这类大厂很少直接让你手写一个快排更多是给你一个场景问你应该用哪种排序。热词里出现的“冒泡排序c”“堆排序算法”“排序算法”其实都在提示一个方向你得把各种排序的复杂度和稳定性背得滚瓜烂熟还得知道它们适合什么场景。我整理了一个表笔试前值得反复看排序算法平均时间复杂度最坏时间复杂度空间复杂度稳定性冒泡排序O(n^2)O(n^2)O(1)稳定快速排序O(n log n)O(n^2)O(log n)不稳定归并排序O(n log n)O(n log n)O(n)稳定堆排序O(n log n)O(n log n)O(1)不稳定这里面最容易被忽略的两个点第一快速排序为什么在最坏情况下会退化到O(n^2)因为每次选基准值时如果都选到最大或最小元素分区严重不平衡。所以实际工程里会用“三数取中”或随机选取基准来避免这个问题。笔试如果问你“快排什么时候最慢”这个答案一定要答到。第二归并排序虽然平均和最坏都是O(n log n)但它需要O(n)的额外空间。为什么归并排序是稳定的因为它在合并两个有序子数组时当左右两边的元素相等它先取左边的元素这样就保持了相对顺序。而快排在交换元素时可能把相同元素的相对位置打乱所以不稳定。堆排序也是同理建堆和堆调整过程中的交换也会破坏相对顺序。2.3 贪心算法和动态规划怎么快速判断一道题该用哪个贪心和DP是算法岗笔试的“胜负手”题目一般不会出现在选择题里而是直接让你写代码。热词里“贪心算法”单独出现说明这类题在当年的搜索热度非常高。判断一道题该用贪心还是DP我的经验是看“局部最优是否能推导出全局最优”。如果能就大胆用贪心如果不能就需要DP把所有状态枚举出来。经典的活动选择问题就是贪心的典型按结束时间排序每次都选结束时间最早的、和已选活动不重叠的活动。为什么这个策略是对的因为结束时间越早剩余时间就越多留给后面的活动空间越大。这种“每一步都做出当前看起来最优的选择最终得到全局最优”的题目就用贪心。而像“背包问题”这类局部拿价值最高的物品不一定能得到全局最优因为背包容量是有限的你还要考虑“性价比”。这种就需要DP用dp[i][j]表示前i个物品在容量j下的最大价值。笔试中DP题通常不会太变态但边界条件特别容易出错。我建议你把“状态定义、状态转移方程、初始值、遍历顺序”四件套列清楚再动手。比如01背包的状态转移方程dp[i][j] max(dp[i-1][j], dp[i-1][j-w[i]] v[i])很多人写代码时会把i和j的遍历顺序搞混导致答案错误。一个很实用的技巧是先用二维数组把逻辑写对在确认结果正确后如果想优化空间再改成一维数组并注意j从大到小遍历。别一上来就写一维数组那样容易把自己绕晕。2.4 图论与高级数据结构Dijkstra、拓扑排序、快速幂除了字符串和排序图论也是算法岗笔试的高频区。热词里的“dijkstra算法”“kahn算法”“二分图hk算法”“快速幂算法c”都在这个范畴。Dijkstra算法考察的核心是“贪心优先队列”的组合每次从未处理的节点中取出距离起点最近的一个然后松弛它的邻居。为什么需要优先队列因为如果每次都用线性扫描找最小值整个算法时间复杂度会是O(V^2)在稠密图上还可以接受但在稀疏图上就会很慢。用优先队列可以降到O(E log V)。笔试如果让你实现Dijkstra我建议直接写“优先队列优化版”这是最稳妥的答案。拓扑排序的Kahn算法则是BFS的经典应用每次从图中删除一个入度为0的节点把它加入拓扑序列同时更新邻居的入度。如果最终拓扑序列的长度不等于节点总数说明图里有环。这道题在笔试里通常不会直接问“什么是拓扑排序”而是会给一个任务依赖场景比如“课程表的选修顺序”“项目任务的先后关系”让你判断是否存在环或输出一个合法的顺序。快速幂是另一个很容易被忽略的送分题。它的核心思想是把指数按二进制拆解将O(b)次乘法优化到O(log b)次。比如计算a^1313的二进制是1101所以a^13 a^8 * a^4 * a^1只需要四次乘法就够了。笔试中出现快速幂不一定直接问更多是作为大数取模运算的基础比如计算“a的b次方模m”。这里有个关键细节每一步乘法后都要取模防止溢出。3. 机器学习与深度学习算法岗笔试的“分水岭”区域3.1 从KNN到聚类无监督学习的高频考点热词里有一条很具体的题“knn算法的应用能力包括哪三个方面”。我记得标准答案一般是分类、回归、异常检测或者说是密度估计。KNN是典型的“懒惰学习”算法训练阶段其实什么都没做只是把数据存下来预测阶段才对每个样本计算它和所有训练样本的距离取最近的K个邻居投票。这也是它最大的缺点预测时间复杂度是O(n)数据量大了之后非常慢。笔试里KNN常见的延伸考点有三个一是K值怎么选太小容易过拟合太大容易欠拟合二是距离度量方式欧氏距离、曼哈顿距离、余弦相似度分别适合什么场景三是数据标准化的重要性因为KNN是对距离敏感的算法如果某个特征取值范围特别大它会主导距离计算导致其他特征失效。爱奇艺这种公司出KNN题很可能后面还会问“如果训练数据有几千万条KNN还能用吗”这时候你要答出来近似最近邻方案比如KD树、球树或者局部敏感哈希。聚类方面K-means是必考。它的流程大家都知道随机选K个中心迭代分配样本到最近中心重新计算中心直到收敛。但笔试爱考的是一些容易被忽略的细节。比如初始中心怎么选“K-means”是通过让初始中心互相离得尽可能远来选择。K值怎么确定常用的方法是“肘部法则”画出成本函数随K变化的曲线找到下降速度明显变缓的“肘部”。K-means本身是NP难问题实际运行得到的是局部最优解所以通常要多次随机初始化取最好结果。这些“细节”才是笔试的得分点。3.2 集成学习与XGBoost为什么它比GBDT更受青睐热词里的“xgboot算法”其实就是XGBoost。在算法岗笔试里XGBoost几乎是必考高频词而且题目往往不会只停留在“XGBoost是梯度提升树”这个层面而是会深入问“XGBoost在GBDT的基础上做了哪些改进”。我记得当时答得比较全的是这四点思路第一XGBoost在目标函数里加入了正则化项叶子节点的数量和相关L2模的平方用来控制模型复杂度降低过拟合风险第二XGBoost用二阶泰勒展开来近似损失函数相当于不仅用了梯度还用到了损失函数的二阶导信息海森矩阵这使得优化更精确第三XGBoost在特征选择和分裂点寻找上支持列采样类似随机森林的做法不仅能减少计算量还能提高模型的泛化能力第四XGBoost对缺失值有自动处理机制通过稀疏感知算法自动学习缺失值分裂方向不需要像传统GBDT那样提前做复杂的填充。掌握到这一步还只是“及格线”。如果笔试中有简答题很可能还会问“XGBoost和LightGBM有什么区别”这时候你要能说出LightGBM的直方图算法、GOSS基于梯度的单边采样和EFB互斥特征绑定三个核心优化。我当时在笔记里给它们排了个序XGBoost胜在精度和稳定LightGBM胜在训练速度和内存占用。3.3 粒子群与模拟退火别再觉得它们“只出现在论文里”热词里“粒子群算法原理”“模拟退火算法”占了两个位置说明它们在当年的算法笔试里讨论度很高。很多人觉得这些元启发式算法只在科研里用笔试不需要准备其实不对。大厂笔试偶尔会出一两道简答题让你“简述粒子群优化算法的流程”或者“与梯度下降法相比模拟退火的优势是什么”。粒子群优化PSO的原理可以这样理解想象一群鸟在找食物每只鸟都知道自己当前的位置和速度也知道自己找过的最好位置个体最优pBest还知道整个群体找过的最好位置全局最优gBest。每次迭代每只鸟的速度都朝着pBest和gBest两个方向调整位置也随之更新。核心公式就两个v_i w * v_i c1 * r1 * (pBest_i - x_i) c2 * r2 * (gBest - x_i) x_i x_i v_i其中w是惯性权重控制的是对之前速度的继承程度c1是认知学习率c2是社会学习率r1和r2是[0,1]的随机数。笔试如果问“PSO和梯度下降的区别”核心回答点是梯度下降需要损失函数可导能找到局部最优解PSO不需要梯度信息只要定义好适应度函数就能搜而且是通过群体协作来跳出局部最优更适合离散、非凸、不可导的优化问题。模拟退火则是从物理中的金属退火过程得来的灵感。核心在于Metropolis准则如果新解比当前解好一定接受如果新解比当前解差也要以一定概率接受这个概率随着温度的降低而减小。这种“以退为进”的策略允许算法跳出局部最优在早期“高温”阶段大胆探索后期“低温”阶段收敛到最优解附近。笔试如果问“模拟退火的关键参数”你要答出初始温度、降温速率、终止温度三个并解释它们对搜索行为的影响。3.4 深度学习基础ELBO、KL散度与强化学习的入门考点热词里的“kl elbo 算法原理详解”和“强化学习算法”看起来高大上但在笔试里通常只会考察基本概念。KL散度描述的是两个概率分布之间的差异它不是对称的即KL(P||Q)不等于KL(Q||P)所以不能当作真正的距离度量。ELBO证据下界是变分推断里的核心概念它是因为很多模型的边缘似然P(x)很难直接计算所以转而去最大化一个下界这个下界就是ELBO。如果笔试给你一个“推导VAE损失函数”的题本质上就是要你用重参数化技巧来优化ELBO。强化学习的入门考点则集中在Agent、环境、状态、动作、奖励这几个基本元素MDP马尔可夫决策过程的构成策略和值函数的概念以及“探索与利用”的权衡。我记得爱奇艺这套题如果涉及强化学习大概率是给一个推荐系统的场景让你讨论“如何平衡给用户推荐熟悉的内容利用和尝试新内容探索”。这种题没有标准答案关键是你能不能用RL的语言把问题描述清楚。4. 信号处理与控制算法容易被忽视的交叉考点4.1 音频重采样视频公司笔试里的“意外之喜”热词里有一条“音频重采样算法”这可能让很多备考的同学摸不着头脑。但你要是换位思考一下爱奇艺的业务场景就明白了视频平台要把不同采样率的音频统一到某个标准采样率去处理就需要重采样算法。笔试里如果出现这个名词大概率不是让你手推Sinc插值公式而是考察你对“采样率转换”基本思路的掌握。音频重采样的本质是用插值算法在原始采样点之间计算出新的采样点。最简单的线性插值适合实时性强的场景但会造成高频成分损失音质一般高质量的场景会用多相滤波器组或者基于Sinc函数的插值同时搭配抗混叠低通滤波器。笔试如果问“重采样时为什么需要低通滤波器”答案是防止频谱混叠。只要采样率低于信号最高频率的两倍就会发生混叠低频成分会被高频成分污染。4.2 图像锐化与Sobel算子卷积在图像处理中的直观体现图像算法是视频平台笔试的常客“sobel算法”就属于这一类。Sobel算子是一个离散微分算子用来计算图像灰度的近似梯度。它在水平方向有一个3x3的卷积核垂直方向有另一个。两个核分别是水平方向 Gx -1 0 1 -2 0 2 -1 0 1 垂直方向 Gy -1 -2 -1 0 0 0 1 2 1把这两个核分别和图像做卷积就得到了每个像素在x方向和y方向的梯度最终梯度幅值可以近似为 abs(Gx) abs(Gy)也可以取平方和开根号。Sobel算子通常用来做边缘检测的预处理也会用在图像锐化中原始图像减去拉普拉斯算子的结果可以让边缘更突出。笔试如果给你一道“计算出某个像素经Sobel算子处理后的值”你只需要理解卷积的计算步骤即可关键是注意边界像素的处理一般会补零。4.3 PID、卡尔曼滤波和控制类算法的出现逻辑热词里的“pid算法”“卡尔曼滤波算法”“mppt算法”“foc算法”走的是另一条线这些通常出现在偏硬件、偏控制的岗位笔试中。但爱奇艺这种互联网公司为什么也在热词里因为算法岗的考察范围越来越广尤其是AIoT、智能硬件部门需要会写控制算法的候选人。了解这些算法哪怕不是你的主攻方向也能在笔试的开放题里显示出你的工程广度。PID大家应该不陌生核心就是比例、积分、微分三个环节。比例环节决定“响应速度”但太大会震荡积分环节消除稳态误差但容易导致超调微分环节预见误差变化趋势能抑制震荡但对噪声敏感。笔试如果问“怎么调PID”考察的就是你对这三个参数作用的直观理解我整理了一个经验方向表参数调节过大时的现象调小时的现象P 比例超调、震荡、响应变快响应迟缓、稳态误差偏大I 积分超调增大、甚至发散稳态误差无法消除D 微分对噪声敏感、系统抖动抑制超调能力下降离散PID的公式也建议背下来u(t) Kp * e(t) Ki * Σ(e(t)) Kd * (e(t) - e(t-1))卡尔曼滤波则是“最优状态估计”的经典算法。它的核心思想是把系统自身的运动模型预测和传感器的测量值更新加权融合权重由两者的协方差决定。预测阶段用状态转移方程推算出下一步的状态和协方差更新阶段计算卡尔曼增益然后修正预测值。笔试如果考到通常会让你写出状态转移和观测更新两个方程组并解释卡尔曼增益的物理含义——它表示“我更相信模型的预测还是更相信传感器的测量”。用在视频tracking场景里卡尔曼滤波就是去预测目标框的移动在下一帧检测结果出来之前给出一个“先验位置”。4.4 推荐系统与检索算法BM25和信息排序的基础逻辑很多算法岗笔试都会涉及推荐或搜索排序热词里的“bm25算法”就是信息检索领域的经典排序函数。BM25在TF-IDF的基础上做了三件事第一对词频做非线性饱和处理因为词频超过某个阈值后对相关性的贡献会递减第二引入文档长度归一化抑制长文档的天然优势第三用可调参数控制词频和文档长度的影响力度。核心公式里通常有几个经典参数k1控制词频饱和的速率b控制文档长度归一化的程度一般k1取1.2到2.0b取0.75。如果你在笔试里碰到“如何评价两个文档和query的相关性”可以从TF-IDF答起然后自然过渡到BM25说明后者在工程中更常用因为它在词频过高时不会让分数无限上涨更符合真实的检索场景。5. 工程与安全算法从Rete到SM系列笔试中的“加分题”5.1 规则引擎与Rete算法面试官想考察你的工程抽象能力热词里“规则引擎drools的rete算法实现原理和事实匹配过程”特别长一眼就能看出是某个同学搜索过的真题。Rete算法是规则引擎的核心匹配算法它把规则编译成一个网络结构缓存中间匹配结果来避免重复计算。你可以把它理解成一个“用空间换时间”的通用思路当让大量事实与多条规则匹配时很多子条件是重复的Rete算法把这部分公共子条件提取出来共用这样新事实进来时就不需要把所有规则重新跑一遍。笔试如果考到Rete算法最关键的是讲清楚alpha网络和beta网络的差别。alpha网络做的是对单个事实的条件校验比如“事实的类型是什么、某个字段的值是什么”beta网络则负责把多个事实做join操作比如“A事件和B事件按某个字段关联”。新事实进入后往往只需要沿着网络结构走一遍把缓存里的中间状态更新一下就行匹配效率会显著提升。5.2 BM25、签名算法与国密SM系列看似冷门的工程考点热词里“腾讯视频ckey5.x算法_php版”是个很特殊的词条。它说明当年的算法笔试确实会碰到商业平台的签名/防盗链算法相关题目。这类题通常不是让你去破解什么而是给你一个签名生成的场景让你设计一套防御思路比如加时间戳防重放、加用户ID和设备信息形成指纹、对参数排序后拼接并做哈希摘要。安全算法方面国密系列也是值得了解的内容。SM2是基于椭圆曲线的公钥加密算法类似RSA但更安全用于数字签名和密钥交换SM3是密码杂凑算法输出256位摘要可以理解为国产的SHA-256SM4是对称分组加密算法用于数据加密存储和传输。ZUC则是面向移动通信的流密码算法。笔试如果涉及“安全哈希与算法”你要清楚这三类密码算法的分工以及“哈希算法与加密算法有什么本质区别”——哈希是不可逆的摘要加密是可逆的变换。这里还延伸出一个经典安全问题“SSL证书使用了弱哈希算法CVE-2005-4900怎么修复”。如果你的笔试题里出现这个答案核心是将证书签名算法从SHA-1升级到SHA-256或更高强度替换服务器端的证书并检查客户端和服务端协议配置中是否还允许SHA-1。这类题考的不是你会不会openssl命令行而是你有没有“弱算法需要被淘汰”的安全意识。5.3 工业与光学算法MPPT、FOC和异常检测的支线知识点热词里“mppt算法”“foc算法”“工业异常检测算法”“eva-02分类算法”“图像分类算法”涉及智能硬件和AI视觉方向。MPPT是光伏逆变器里最大功率点跟踪算法常见的有扰动观察法和电导增量法FOC是电机控制中的磁场定向控制算法核心是把三相电流变换到d-q旋转坐标系近似成直流电机来控制。这类题如果在笔试里出现多半是开放性的“算法选型”题比如“要在资源受限的嵌入式设备上实现实时控制你会选什么算法”这时候FOC、增量式PID就比复杂神经网络更合适。工业异常检测则对应近年来很热的“小样本无监督异常检测”。“EVA-02分类算法”是视觉领域的大模型主干网络考察你关不关注前沿。但笔试不会让你手推EVA-02的结构它想知道的只是你是否了解预训练模型、微调和迁移学习的基本逻辑。我的建议是对这类前沿算法不必深挖细节但看到名词时要知道它是做什么的、大致思路是什么能说上两句就足够应对笔试里的概念选择题了。6. 笔试现场的时间分配与答题顺序策略技术储备再足如果考场上时间分配失误一样会翻车。我根据爱奇艺这场笔试的经验给后来人几条可操作的策略。第一先整体扫一遍所有题目给自己一个“难度梯度”判断。不要从第一题按顺序死抠到底笔试时间通常是按题目总数平均分配的但难度并不均匀。我习惯先把选择题和简答题中会做的快速做完立刻拿下“基础分”再集中精力攻克编程题。第二编程题里如果卡住了先写暴力解法再逐步优化不要一直纠结最优解。在笔试评分里部分通过通常有对应分数能跑通一个O(n^2)的解法拿到80%的分数比空着不得到一个无从下手的O(n log n)要强得多。第三答题时代码之外一定要写思路注释和复杂度分析。阅卷往往看你的解题思路有时甚至比代码本身更重要。就算代码有bug清晰的注释也能帮阅卷人理解你的意图。另一个容易被忽略的坑是题目要求“写代码实现某算法”时一定要先在注释里写出“时间复杂度”和“空间复杂度”尤其是在使用了递归、动态规划这种容易堆栈溢出或超内存的方案时主动分析复杂度会明显提高你的专业性评价。我记得当年交卷前才发现有一道编程题用了递归写法如果题目给的测试数据足够大大概率会栈溢出幸好提前转成了迭代版本才避免翻车。还有一个经验是笔试过程中保持“边做边记录”的习惯。不是让你抄题而是把解题中的关键假设、边界条件、复杂度分析简要写在代码注释或答题区这样当你中途被其他题目打断再回来时能快速恢复上下文。同时如果做完后还有时间优先检查编程题的边界条件例如空数组、数组长度为1、负数、极大数溢出等情况这些是笔试扣分最集中的地方。说到底爱奇艺2020校招算法方向这套笔试题与其说是一套题不如说是一个信号大厂算法岗要的不仅是会刷题的选手更是能把算法和工程场景结合起来的综合型候选人。热词里那些看起来零散的概念——KMP、粒子群、重采样、PID、BM25、SM系列——恰恰构成了算法岗知识体系的横切面。希望这篇拆解能帮你在准备笔试时少走一些弯路。我也一直觉得备考算法岗最有价值的部分不是最后拿到的offer而是那个过程中真正搞懂的每一个算法的“为什么”这些积累会在你未来处理真实业务问题时一点一点变成你的底气。