网易2023校招算法工程师笔试复盘:考点、题型与备考策略
把时间倒回2023年秋招季我坐在电脑前面对网易2023校招笔试-算法工程师正式第二批的试卷心跳和倒计时同步加速。这场笔试两个小时题量不算夸张但每一道选择题都像是在试探你对算法原理到底是背过还是真懂每一道编程题都暗含边界条件的陷阱。作为一个算法工程师岗位的候选人算法这个关键词贯穿始终从数据结构到机器学习从经典算法到工程实现几乎覆盖了我复习计划里的每一个角落。这篇文章不打算复述题目原文而是把我复盘后整理出的完整笔试思路、考点权重、典型题型和踩坑经验一次性讲清楚给正在准备大厂算法岗笔试的同学一份可以直接参考的实战手册。1. 笔试整体架构试卷科目分布与答题顺序策略网易2023校招笔试-算法工程师正式第二批这套卷子和同批次的开发岗、测试岗最大的区别在于它不考前端框架、不考Linux命令细节而是把绝大部分分值压在算法思维和机器学习基础上。整张卷子大致分为三个模块单选题、多选题和编程题考试总时长120分钟允许使用本地IDE但需要在线提交。从题型分布来看选择题大约占40%到50%的分值编程题占50%到60%。选择题的基础知识覆盖面很广包括数据结构排序算法、图论、动态规划、贪心算法、KMP这类经典字符串算法的理解以及部分机器学习算法的基础概念。值得注意的是网易的算法工程师笔试和普通后端开发笔试不一样它会把机器学习相关内容放进选择题里考察比如KNN算法的应用能力、聚类算法的适用场景、强化学习的基本思想这些内容如果只看《算法导论》而忽略机器学习基础会有大概五六道题完全无从下手。我当时的答题顺序策略是先花3分钟快速浏览全部题目把编程题的数量和难度摸清楚然后立刻决定先做编程题还是先做选择题。这个顺序非常关键因为网易的题型是每道题独立计时但总时间共享的模式如果你先花40分钟做选择题最后只剩20分钟写两道编程题很可能连暴力解都敲不完。我个人的建议是先把所有编程题通读一遍挑出最简单的一道先写掉保证至少有一道AC然后再回头处理选择题最后集中攻克剩下的编程题。另一个容易被忽略的策略是——多选题宁可少选不要乱选。网易的多选题计分规则通常是全部选对得满分选对但不全得一半分有错选得0分。也就是说如果你对某个选项没有绝对把握果断放弃它。我见过太多人因为多蒙了一个选项导致整道题0分这种心态上的教训远比知识盲区更可惜。2. 高频算法考点梳理从排序到字符串匹配的命题逻辑这一部分是我复盘时花时间最久的地方。网易的算法工程师笔试基础算法部分的考点高度集中而且命题方式有非常明显的递进式特征——它很少直接问你冒泡排序的时间复杂度是多少而是给一段局部排序过程让你判断这是哪一趟排序后的结果或者让比较不同排序算法在特定数据分布下的性能表现。排序算法是选择题的常客。复习时必须把冒泡排序、快速排序、堆排序、归并排序这四类的稳定性、时间复杂度和空间复杂度烂熟于心。网易特别喜欢考的一个细节是快速排序在最坏情况下的时间复杂度很多人条件反射写O(n log n)但题目如果限定每次划分都选中最大值或最小值作为基准正确答案是O(n²)。另外堆排序的建堆过程也常考给一个乱序数组让你画出大根堆调整后的形态这种题只要记住从最后一个非叶子节点开始向上调整就不会错。数据结构方面网易对哈希表、二叉搜索树、图的存储方式有稳定的出题频率。有一点要注意它爱考哈希冲突解决方法的辨析比如链地址法和开放定址法在线性探测时的区别。如果你只是记住了定义没在草稿纸上实际模拟过插入过程遇到具体数值的题目容易算错。我个人复习时把这类题型归为必须手推一遍的清单因为光看文字根本建立不起直觉。字符串算法的KMP是每年必考的高频点。网易2023年这场的命题方式是给出模式串让你求出next数组的某个下标值。这就绕不开KMP中next数组的定义细节——不同的教材对next数组下标起点和移位规则有差异如果你用的是next[i]表示当前字符匹配失败后跳转的目标位置这种定义计算时要特别注意模式串下标0处的next值通常约定为-1或0。我自己在做这类题时会先在草稿纸上写出完整的next数组再逐项对照题目选项虽然多花30秒但准确率极高。还想提醒一点KMP的next数组计算和字符串的循环节问题经常结合起来考比如求字符串的最小循环周期本质上是n - next[n]的运用。贪心算法和动态规划也是这一模块的重要组成。网易考贪心时特别喜欢把排序和贪心组合起来比如任务调度问题区间覆盖问题先按某个优先级排序再逐个决策。而动态规划的核心考法有两大类一类是基础的背包问题变种比如给一个体积数组和目标容量问能否恰好装满另一类是二维DP比如编辑距离、最长公共子序列。对于后者我强烈建议你在本子上画出二维转移表来推导把状态转移方程写出来后再填表比在脑海里空想要可靠得多。这些题目虽然不要求写完整代码但会以下列哪个状态转移方程是正确的这种选择题形式出现所以状态定义和转移方程的准确记忆比会做本身更重要。除了上述经典内容网易还会偶尔涉及一些较冷门但很见功底的知识点比如树状数组、线段树、Kahn算法做拓扑排序、二分图HK算法求最大匹配、DC3算法求后缀数组等。我的经验是这些题出现的频率低但不是零概率如果你复习时间有限至少要把拓扑排序和最小生成树掌握扎实因为它们在笔试和面试中都是安全牌。3. 图论与搜索策略深度优先、广度优先的真实考察方式图论是网易笔试中区分度很大的板块。2023年这场图论相关题目占了大约6道选择题还有一道编程题的背景是图上的最短路径问题。我印象最深的一道题是考察Dijkstra算法在带权有向图中的执行过程题目给了一张5个节点的图让你选出使用Dijkstra算法后第二个被确定最短路径的节点。很多人会在这道题上翻车原因是Dijkstra算法要求所有边权为非负而且每一步确定节点的顺序取决于优先队列的实现方式不同实现可能导致同一张图得到距离值相同但出队顺序不同的结果。所以备考时不能只背每次取距离最小的点这句话必须亲手在草图上运行一遍算法理解松弛操作的过程才能真正应付网易这种代入数据的考察风格。相比之下广度优先搜索BFS更常出现在编程题里比如迷宫最短路径、多源BFS等。网易的一道编程题就属于这一类给定一个二维矩阵表示地图每个格子的值为0或11表示障碍要求计算从起点到终点的最短步数若不存在路径输出-1。这道题本身并不难但考察了输入解析、方向数组的定义、 visited数组的边界处理任何一个环节出问题都无法AC。我在考场上的做法是先用deque实现标准BFS确保队列初始化放入起点然后在四个方向遍历时先判断新坐标是否越界再判断是否为障碍物。另外网易对剪枝算法的考查也很有意思。它不直接出什么是剪枝而是把回溯求组合、排列问题包装一下问你如何通过剪枝减少无效搜索。典型例子是组合总和问题给定候选数组和一个目标值找出所有和为目标值的组合候选数可以重复使用。如果不剪枝递归搜索会爆炸而剪枝的核心是先排序当当前路径的和已经大于目标值时提前终止。这一思想在笔试和面试中都频繁出现值得作为重点专题复习。剪枝思想和模拟退火算法、粒子群算法这类启发式搜索也是有一定家族关系的后者在网易选择题中出现过一次考察粒子群算法在迭代过程中粒子速度和位置更新公式分别依赖哪两个最优值。如果你只刷LeetCode不学智能化算法这种题就只能凭感觉选。4. 机器学习与深度学习算法工程师笔试的差异化命题点这一部分正是网易算法工程师笔试与普通软件开发岗笔试拉开差距的地方。2023这场考试机器学习相关的选择题大概占10到12道既有概念辨析题也有简单的计算题。如果你想投算法岗但机器学习基础没系统复习这里会成为主要的失分区。KNN算法是网易笔试多年不变的高频考点。题目会问KNN算法的应用能力包括哪三个方面或者给出一组样本和K值让你判断新样本的类别。这类题的突破口在于理解KNN的本质它是一个基于实例的懒惰学习算法没有显式的训练过程核心要素是距离度量方式欧氏距离、曼哈顿距离、K值的选取以及决策规则多数表决还是加权表决。网易还喜欢考KNN的优缺点对异常值敏感数据量大时预测速度慢等等。这些概念如果你只看机器学习实战的书而没梳理过理论遇到以下哪项不是KNN的特点这种负向选择题会比较吃亏。聚类算法也是常客。网易对K-Means的考察非常细致不仅问算法流程还要求手算某一步聚类中心更新后的新坐标。这种题只要记住簇内均值的计算方式别把均值算错就能得分。它还会拿K-Means和DBSCAN对比问你哪个算法能够发现任意形状的簇哪个对噪声点更鲁棒这时候就需要你理解DBSCAN的密度可达和密度相连的概念。强化学习和深度学习的概念题同样占有一定比例。强化学习方面网易考过Q-learning中Q值更新公式中学习率的作用考过策略梯度和基于价值的方法的核心区别。这类题不会深入推导公式但要求你在宏观层面理解算法家族的边界。深度学习方面最常见的考法是给一个卷积神经网络的输入尺寸和卷积核参数问输出特征图大小。这需要你掌握输出尺寸公式并且注意padding和stride的相互作用值得特别留意的是题目里可能用same padding或valid padding这样的术语描述含义与代码库中的参数一致。5. 经典算法与工程算法题粒子群、PID到音频重采样的交叉延伸网易笔试的另一个特点是会在基础算法之外嵌入工业级或交叉学科的算法概念。2023这场经典算法与工程算法题这一板块虽然分值不大但区分度极高。我记得有一道题是结合PID算法在无人机或电机控制场景中的角色问比例、积分、微分三个环节各自的作用。如果你对PID的直觉是比例用于快速响应积分用于消除静差微分用于抑制超调这道题就能轻松拿分。它还会给出一个P值过大导致系统震荡的现象让你判断应该调整哪个参数。音频重采样算法这个热搜词也反映在选择题中。网易考了一道关于音频重采样中插值方法的选择题问线性插值、三次样条插值、基于FFT的重采样各自的特点。说实话这种题超出传统刷题范围但如果转念一想音频重采样本质上是数字信号处理中的采样率转换核心思想是先插值后抽取再经过低通滤波器就不难理解选项中的描述。同样图像锐化的拉普拉斯算法、图像分类算法等话题也出现在选项中核心是理解卷积核的作用。另一个让我意外的是网易考察了BM25算法在搜索引擎相关性排序中的应用。这几乎是信息检索领域的标准算法它结合词频TF、逆文档频率IDF和文档长度归一化计算查询词与文档的相似度。我当时很庆幸自己在准备阶段看过相关项目不然面对BM25中的参数k1和b分别控制什么这种题目只能靠排除法。另外像规则引擎Drools的Rete算法实现原理和事实匹配过程这种工程算法题也出现过一次它本质上是问模式匹配算法如何利用网络的节点共享来提升匹配效率。这类知识和常规算法竞赛完全不同靠的是平时阅读源码和阅读技术博客的积累。若时间允许建议把常用开源算法库的原理过一遍不必记代码但要理解流程图级别的逻辑。6. 编程题实战环境准备、边界条件与从暴力到最优解编程题部分我放在最后写因为这部分最考验的是熟练度而非灵感。网易的在线评测系统支持C、Java、Python三种语言我选择的是Python因为它在处理字符串和列表输入输出时最省时间。一个非常实际的建议是在笔试开始前一定要把输入输出的模板代码准备好。这道题通常要求从标准输入读取数据第一个数字是测试用例组数T接下来是T组数据每组数据格式各不相同。如果你每次写都从空白文件开始等于浪费时间在模板上。网易编程题里有一种很典型的二分答案题型。这类题长这样给定一个数组要求你判断某个阈值是否存在或者求满足条件的最小/最大值。暴力解通常是O(n²)或更高但通过二分答案可以把复杂度降到O(n log n)。我遇到的一道题就是这样要求把一段长度为n的序列分成m段连续子数组使得所有子数组和的最大值最小。这题最初我想贪心从前往后划分但忽略了最大值最小化自带二分性质。正确思路是二分枚举最大和然后检查在不超过该上限的情况下能否分成m段。编程题的边界条件永远是AC率的天敌。网易2023考了一道排序相关的题表面上是给定一个无序数组求第k大的数可以用快速选择算法或者小根堆求解。但题目有个隐藏条件k的取值范围可能是1到n的任意值n最大到10⁶。如果你的方案是全部排序后取下标耗时O(n log n)在时间限制很紧时会超时如果改用维护大小为k的小根堆复杂度降为O(n log k)。这种考法说明网易的评测数据不仅测正确性也测复杂度。所以平时训练时每写一道题都要养成估算时间复杂度的习惯。再聊一个高频编程考点前缀和相关。网易爱把前缀和和哈希表结合起来考比如给定一个数组求满足和为k的连续子数组个数。暴力枚举所有子数组O(n²)必超限而用字典记录前缀和出现的次数一次遍历O(n)就能解决。这题的细节在于累计前缀和cur_sum后先查cur_sum - k是否在字典中再把cur_sum的计数加1顺序不能反。这个先查后更新的顺序是我踩过很多次坑之后才牢记的。类似的快速幂算法也在网易的题目中出现过用来处理大数取模运算比如计算a的b次方模pb可能达到10¹⁸级别。快速幂的核心是把指数二进制拆解并结合取模代码实现并不复杂但记忆点和易错点在于底数更新与结果更新的时序。7. 复盘与后续准备从笔试到面试的衔接路线笔试结束后的24小时是复盘黄金期。我的做法是趁记忆还清晰把每道选择题的考点记下来标注确定正确/蒙对/完全不会三档然后针对蒙对和完全不会的知识点做专项补强。特别是那些在考场上靠排除法猜出答案的题目如果不记录过几天就会忘掉而这类知识点往往是网易这类大厂反复出题的核心。举个例子我在考场上对一道关于增量式PID的题拿不准复盘后特意去研究了增量式PID与位置式PID的区别发现增量式算法输出的是控制量的增量不累积误差且对执行机构故障的冲击较小这个理解后来在面试中被追问到了。从笔试到面试的衔接也很重要。网易的技术面试会反复考察你笔试上暴露出的薄弱环节。我复盘时发现我的多选错题集中在聚类算法和强化学习于是花了三天时间把K-Means、DBSCAN、层次聚类的细节和Q-learning、SARSA的差异做成了表格包括算法步骤、适用场景、优缺点和典型面试追问。这套准备让我在一面时格外从容因为面试官问的DBSCAN的参数如何调节Q-learning和SARSA的off-policy与on-policy差别恰好都在复盘范围之内。关于刷题数量我个人的体感是基础算法部分LeetCode刷到200题左右就能应付笔试选择但机器学习概念题和工程算法题必须结合书本系统梳理。网易的笔试更看重基础是否牢固而不是是否刷过难题。与其花两周死磕一道高级动态规划不如把排序、二分、BFS/DFS、贪心、KMP、哈希、前缀和这些基本功打磨到不用思考就能写出代码的程度。笔试最终拼的其实是熟练度和心态的稳定。如果你和我一样正处在秋招的强压之中我想说笔试只是长跑中的一段它的作用是筛选而非定义你。考完无论感觉好坏都值得认真复盘一遍把这份卷子当成一次免费的模拟考。那些做错的题、犹豫的选项、差点AC的编程题才是这套题给你带来的最大价值。把每次笔试都当作下一次笔试的练习你一定会越走越稳。

相关新闻

最新新闻

日新闻

周新闻

月新闻