尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

2023秋招小红书研发岗第三批笔试复盘:题型、考点与策略

2023秋招小红书研发岗第三批笔试复盘:题型、考点与策略 “第三批笔试”这个说法在2023年秋招的各大高校群里几乎是刷屏级的存在。作为经历过完整秋招的人我太清楚这句话背后的分量了简历筛选过了、测评做了、盼星星盼月亮等来的笔试通知结果发现是“第三批”。有人觉得批次越靠后机会越少也有人觉得第三批正好避开了前两批的大神各有各的说法。但真正参加过小红书的第三批研发岗笔试之后我的感受是这批题目的质量、难度和筛选意图都值得单独写一篇复盘。尤其是对于那些后面还要参加类似厂笔试的同学这篇内容应该能帮你少走很多弯路。这篇文章不谈虚的就围绕“2023年秋招-小红书-研发岗-第三批笔试”这个标题把这次笔试的批次逻辑、题型结构、算法题考点、基础知识覆盖范围、做题策略和后续面试衔接一条一条拆开讲清楚。无论你是今年准备投递的应届生还是想了解小红书研发岗笔试风格的候选人这篇文章都能给你一个清晰的参考坐标。1. 为什么会有“第三批笔试”批次背后的招聘节奏1.1 秋招笔试分批次是常态不是特殊操作很多同学第一次看到“第三批笔试”会紧张觉得是不是自己简历不够硬才被排到了后面。其实完全不是这样。大厂秋招的笔试分批次本质上是“生产线”逻辑投递简历的人实在太多了面试官资源有限笔试系统同一时间承载不了所有候选人同时在线。所以HR会把网申截止时间拆成几个节点按投递先后或者简历筛选进度分批安排笔试。小红书这种内容社区平台秋招的技术岗投递量非常大尤其是研发岗计算机相关的毕业生几乎人手一份简历。如果不分批笔试系统会崩判题服务器的压力也扛不住。所以分批次不是为了区分人才等级而是为了合理分流。第三批通常对应的就是网申中后期投递、或者简历筛选通过较晚的那批人。1.2 第三批笔试在时间轴上的位置2023年秋招小红书的笔试时间线大致延续了往年规律第一批在8月底到9月初第二批在9月中下旬第三批基本落在10月中上旬。这个时间点非常微妙因为很多互联网大厂的秋招提前批已经结束正式批也进入了面试阶段甚至有人已经拿到了意向书。这就导致一个现象第三批笔试的候选人群构成比较复杂。一部分是投递晚的应届生一部分是前期笔试没通过又被捞起来重考的少数还有一部分是考研结束想两手准备的人。所以第三批笔试的题目不会比前两批简单但也绝不至于故意出难题刷人。它的核心逻辑是在同一天用同一套题尽量客观地区分出候选人的技术底子。1.3 批次越靠后机会越少吗这是我的个人观察批次靠后不等于机会少但“赛道”确实有变化。小红书的前两批笔试结束后很多岗位的headcount已经有了候选人第三批更多是查漏补缺。也就是说第三批笔试的通过率可能比前两批低一点但一旦通过后续面试流程会被压缩得很紧因为HC不等人。所以如果你是第三批笔试的候选人别抱着“试水”的心态。要么不参加参加了就要当成最后一场笔试来打。我见过太多同学觉得自己是第三批随便做做就被挂了后来才知道第三批笔试的成绩也是会进人才池的秋招补录的时候还能被捞起来。认真对待每一场笔试这是我在秋招里学到的最重要的一课。2. 笔试题目结构拆解单选、不定项、编程题的真实手感2.1 在线笔试平台与考试时长小红书研发岗的笔试用的还是牛客网的在线笔试系统。这里要提醒一句提前熟悉牛客网的代码编辑器尤其是那个代码自动补全功能别提多难用了。平时习惯用本地IDE写的同学建议提前去牛客网做几套模拟题不然考试时光是适应编辑器就能浪费二十分钟。考试时长是90分钟题量不小大致分为三个部分单选题、不定项选择题、编程题。编程题一般是三道也有两道的场次但无论题量多少时间都很紧张。90分钟要完成选择题加编程题意味着每道编程题留25分钟左右的窗口选择题的速度必须快。2.2 单选题覆盖广度难度不大但陷阱不少单选题大概15到20道范围覆盖了计算机基础的所有核心科目。我的感受是小红书的单选题不追求深度而是追求广度。网络、操作系统、数据库、数据结构、Java或C语言特性都会考到但每道题都不难。难点在于时间紧有些题会故意设置“两个好像都对”的选项这时候拼的就是基础扎不扎实。比如我当时碰到的一道印象深刻的题给出一段Java代码问运行结果是什么。代码里用到了HashMap在并发环境下的一些操作。如果你只看代码逻辑会觉得答案是某个值但实际上还要考虑HashMap在多线程环境下的不可预测性。这种题教材里不一定会明说但刷过并发题、看过HashMap源码的同学就不会掉坑里。2.3 不定项选择题是拉分大项不是碰运气环节不定项选择题是最让候选人头疼的部分。它的评分规则是少选不得分多选不得分选错不得分只有完全正确才给分。这就意味着你靠蒙是拿不到分的必须有十足把握才能选。小红书的题目里不定项选择大概5到10道集中在Java基础、JVM、并发编程、数据库隔离级别这些方向。有一道关于JVM垃圾回收的题问“CMS垃圾收集器的特点有哪些”选项里有正确的也有误导性很强的错误选项。这种题想拿分光知道CMS是并发收集器是不够的还得知道它什么时候会触发Full GC、会产生什么碎片。我当时复习过一遍JVM但细节没吃透这道题估计是错了一半。2.4 编程题风格偏工程思维不是纯刷题思维三道编程题难度梯度非常明显。第一道是“签到题”基本是字符串处理或简单模拟考察基本的语法和调试能力。第二道是中等难度通常涉及动态规划或贪心。第三道是难度题可能涉及较复杂的数据结构比如并查集、拓扑排序或者是一道需要用二分答案优化的题目。但小红书的编程题有一个特点题干描述会刻意包装成产品逻辑或业务场景。比如有一道题是“给定一组用户发帖的时间戳判断最大同时在线人数”本质上是一道求区间重叠最大值的题但如果你被题干的业务描述带跑偏了就会浪费很多时间理解题意。这种风格很符合小红书的业务属性——你的代码是为业务服务的算法脱离业务就没有意义。3. 算法题高频考点从签到题到压轴题的实战复盘3.1 第一道编程题快速进入状态的签到题第一道编程题通常是用来稳定军心的难度不高但它决定了你整场笔试的节奏。我遇到的是这么一道题给定一个字符串按字符出现频率从高到低排序如果频率相同按字符ASCII码升序排列输出排序后的字符串。这种题属于LeetCode中等偏下的难度但是有一个小坑如果直接用数组存字符次数排序时需要记住字符和频率的对应关系不能只排次数然后输出。我当时用的方法是把字符和频率封装成一个结构体然后写Comparator排序。核心代码大概是这样的from collections import Counter def sort_string(s: str) - str: cnt Counter(s) # 按频率降序频率相同按ASCII升序 sorted_chars sorted(cnt.keys(), keylambda k: (-cnt[k], ord(k))) return .join(c * cnt[c] for c in sorted_chars)这道题考察的其实是做题习惯你是不是能迅速从“读题”切换到“写代码”而不是纠结题目的业务包装。如果你在签到题上磨蹭太久后面的心态会崩。3.2 第二道编程题动态规划边界条件是命门第二道题我印象很深是一道“最长合法括号子串长度”的变体但加了一个条件括号序列中包含了普通字符需要先忽略掉非括号字符。这就比LeetCode原版多了一层过滤逻辑实际上考验的是你能否在原题的基础上做小改动而不是死记硬背解法。这类题的“正统解法”是动态规划状态定义可以这样想dp[i] 表示以第 i 个字符结尾的最长合法括号子串长度。当 s[i] 是左括号时dp[i] 0当 s[i] 是右括号时且 s[i-1] 是左括号那么 dp[i] dp[i-2] 2如果 s[i-1] 是右括号且前一个合法子串前面是左括号那么 dp[i] dp[i-1] 2 dp[i - dp[i-1] - 2]。但笔试时我不建议直接写动态规划因为边界情况特别容易出错。更稳妥的办法是用栈来解栈底始终放一个“哨兵”索引初始化为 -1。遇到左括号就入栈遇到右括号就出栈如果栈为空说明当前右括号没有匹配就把当前索引入栈作为新的哨兵。每次出栈后当前索引减去栈顶索引就是目前合法的括号子串长度。def longest_valid_parentheses(s: str) - int: stack [-1] max_len 0 for i, ch in enumerate(s): if ch (: stack.append(i) else: stack.pop() if not stack: stack.append(i) else: max_len max(max_len, i - stack[-1]) return max_len这道题给我的教训是平时刷题要理解多种解法而不是只背一种。动态规划适合做正解但笔试现场时间仓促栈的方法更容易一眼写对。3.3 第三道编程题并查集看似高频但容易放弃第三道题是并查集的变体题干是这样的社交平台上有 n 个用户给定 m 组“关注关系”如果 A 关注 BB 关注 C那么 A 和 C 就算在同一个“兴趣圈层”里求最终有几个独立的兴趣圈层。这就是个典型的并查集连通分量题目难点不在于并查集本身而在于数据规模。n 和 m 都到了 10^5 级别如果不用路径压缩和按秩合并可能超时。我当时写了一个最基础的并查集模板路径压缩是做了但按秩合并没写进去结果最后一个用例跑得很慢估计是超时边缘。class UnionFind { int[] parent; int[] rank; int count; public UnionFind(int n) { parent new int[n]; rank new int[n]; count n; for (int i 0; i n; i) parent[i] i; } public int find(int x) { if (parent[x] ! x) parent[x] find(parent[x]); return parent[x]; } public void union(int x, int y) { int px find(x); int py find(y); if (px ! py) { if (rank[px] rank[py]) { parent[px] py; } else if (rank[px] rank[py]) { parent[py] px; } else { parent[py] px; rank[px]; } count--; } } }这里要特别提醒笔试时判断一道题该不该花时间要看数据范围。如果 n 到 10^5基本是并查集路径压缩跑不掉了如果 n 才 100直接 DFS 或 BFS 更容易写对。别看到一个“圈子”“分组”就觉得是并查集先看数据量再决定。3.4 编程题的做题顺序先易后难不是永远正确绝大多数人的习惯是先做第一题再做第二题最后死磕第三题。但我的建议是先把三道题都看一遍用两分钟判断每道题的难度和得分性价比然后从性价比最高的一道开始写。如果第三题你能快速想到并查集的解法而第二题的动态规划还没头绪那就先写第三题。我这次笔试的经验恰好证明了这个策略的威力我本来打算从第一题顺序做但瞟了一眼第三题的题干发现是并查集的模板题立刻决定优先处理第三题。事实证明第三题用标准模板不到15分钟就写完了剩下的时间足够我慢慢琢磨第二题的边界条件。如果你按顺序做卡在第二题上第三题大概率没时间碰损失很大。4. 基础知识题覆盖范围系统、网络、数据库一个都不少4.1 操作系统进程、线程、死锁是常客选择题里操作系统大概占三到四道集中在进程与线程的区别、死锁的四个必要条件、虚拟内存与页面置换算法、进程调度算法这几个模块。小红书的题目难度不高但会考察概念的边界。举个例子有道题问“下列哪个情况一定会发生死锁”选项分别是A. 多个进程竞争同一资源B. 进程A持有资源R1等待资源R2进程B持有资源R2等待资源R1C. 一个进程同时持有多个资源D. 进程循环等待且互斥、不可剥夺、持有并等待。D看起来正确但B也是四个条件中的“循环等待”的一种体现这两个选项区分度不高。实际上只有“四个必要条件同时满足”才是死锁的充分条件B的描述只是“循环等待”的一部分不一定满足“不可剥夺”。所以答案应该是D。这类题靠刷题是没用的需要你真正理解死锁的四个条件缺一不可的逻辑。4.2 计算机网络从握手到状态码都会碰网络题也是三到四道覆盖TCP三次握手、四次挥手、HTTP常见状态码、DNS解析流程、TCP和UDP的区别。小红书的题库里有一个偏好它喜欢把“概念”放到“场景”里去考。比如有位同学回忆的题目“用户在浏览器输入URL并回车之后会发生哪些事情按顺序排列。”这个过程涉及到DNS解析、TCP连接、HTTP请求发送、服务端响应、浏览器渲染。你需要清楚每一步的次序也要知道哪一步是UDPDNS查询。这种题不难但综合性很强复习时要把计算机网络的三层模型串成一条线而不是单独记忆某个协议。4.3 数据库索引失效、事务隔离级别是重点数据库的题大概两到三道MySQL为主。高频考点是索引失效的场景、B树和Hash索引的区别、事务ACID特性、四种隔离级别以及各自的并发问题。其中事务隔离级别是拉分项因为很多同学的认知只停留在“读未提交、读已提交、可重复读、串行化”这四个名字上却不清楚每个级别解决了什么问题、还遗留什么问题。小红书的题目考到“可重复读”和“幻读”的关系。在MySQL的默认隔离级别可重复读下幻读是怎么被解决的这道题涉及MVCC和间隙锁的概念。如果只是背过“可重复读会幻读”却不知道InnoDB通过间隙锁解决了幻读这道题就会选错。我的建议是复习数据库时一定要看InnoDB锁机制的章节不要只盯着SQL写法。4.4 编程语言与Linux命令白送的分数也要看运气编程语言题以Java为主也会涉及C、Go的一些基本概念。考查点包括Java的集合类、HashMap底层原理、JVM内存区域、垃圾回收算法、Java并发包里的工具类。Linux命令题通常是考文件权限、进程查看、端口占用这种实用场景。这里说一个经验Linux命令题是送分题但前提是你真的用过Linux。如果你平时都是在Windows上写代码只是考前背了ls、cd、ps这些远远不够。小红书的题会问“如何查看某个端口被哪个进程占用”答案是 netstat -tlnp | grep 端口号而不是 lsof。我复习时重点看了命令的基本参数但没留意到组合用法遇到这道题只能靠排除法做。建议准备校招的同学至少在Linux环境里敲一个月命令别靠死记。5. 笔试题之外同样决定成败的细节策略5.1 考前环境准备摄像头和浏览器别临时抱佛脚小红书笔试要求开启摄像头并且在独立的环境里完成。考前一晚一定要检查三件事摄像头能不能正常打开、浏览器是否允许牛客网使用摄像头和麦克风、网络是否稳定。这三个问题任何一个出状况都会导致考试中断。我身边真的有同学在笔试当天进入系统后发现摄像头权限没开折腾了十分钟才弄好这些时间都是要从90分钟里扣的。另外建议在考试前把电脑的弹窗通知、自动更新都关掉最好开启勿扰模式。笔试系统有些版本会检测你是否切换了浏览器窗口如果你不小心点了浏览器外的其他位置可能会被判为作弊警告。我自己的做法是用一台没有安装任何多余软件的电脑考试只开一个浏览器窗口手机上登录微信但静音把所有可能打扰的因素隔离出去。5.2 做题节奏选择题限时编程题保底90分钟的时间分配我的建议是选择题最多40分钟编程题至少45分钟剩下的5分钟留作检查。选择题如果超过40分钟还没做完哪怕蒙也要把答案填上因为空着肯定没分蒙了还有概率对尤其单选。不定项选择如果没把握就只选一个最确定的选项虽然没有分但至少比瞎选要好。编程题则相反不要追求完美先写一版能跑的代码提交一次。牛客网是支持多次提交的以最后一次为准。所以我通常会先快速提交一个暴力解法保证有分然后再优化。这种做法在算法题上是“保底思维”哪怕最后没优化成功也能拿到暴力分。5.3 代码提交的隐性扣分点输入输出与循环笔试中最可惜的挂法不是题不会做而是输入输出的格式不对。牛客网是自动判题系统如果你用代码本地跑没问题但提交后显示0分十有八九是输入解析有问题。比如题目说第一行是整数n第二行是n个数有些同学会漏掉第一行不读直接读取第二行。用Java写的话要记得 Scanner 读完整行而不是一个一个nextInt。还有一个更低级的错误笔试时把调试用的 System.out.println 输出留在了代码里。比如你调试时打印了中间变量提交的时候忘了删这些输出会被判题系统当成结果的一部分导致答案错误。我每次提交前都会检查一遍代码模板把所有调试输出清干净。5.4 心态管理卡题十分钟果断换下一个我的做题经验是一道编程题看了十分钟还没有任何思路立刻放手先做其他的。这不是放弃而是止损。90分钟的时间看起来不少但一旦卡在难题上时间会以极快的速度流失等你回过神来已经过去了三十分钟其他题根本没时间做。编程题有思路不代表一定能过但没思路一定过不了。所以遇到不会的题先标记一下把其他能得的分都拿到再回来啃硬骨头。第三批笔试的竞争本身就不轻松能多拿一分就多一分进入下一轮的希望。6. 从笔试到面试成绩出来之后该做什么6.1 笔试通过后的通知节奏小红书研发岗的笔试成绩一般会在笔试结束后一周左右通过短信或者邮件通知也可能直接在投递系统的状态里看到变化。通过了笔试紧接着就会被安排技术面试一般是两轮技术面加一轮HR面也有三轮技术面的情况具体看部门。第三批笔试的时间在10月中上旬面试通知往往会在10月下旬到11月初集中发放。这个时间点很多同学已经拿到了其他公司的意向书心态上可能有些松懈但我建议你把小红书的面试当成一次提升自己的机会。不论最终是否去小红书多一轮实战面试对后续的offer选择都有好处。6.2 笔试复盘把错题变成面试素材笔试结束后不管过没过一定要做一次复盘。牛客网的笔试系统不会告诉你每道题的对错但你可以凭记忆把题目还原出来尤其是那些不确定的选择题和编程题。我当时把第三批笔试的所有题都回忆了一遍没做出来的那道并查集后来专门花了半个下午重新写了一遍还复习了路径压缩和按秩合并的原理。这个复盘中有一个意外收获笔试里的一个业务场景题在面试中被问到了类似的问题。因为我已经在复盘时分析过面试现场回答得非常顺。所以笔试不仅仅是筛选更像是面试的预演。你把笔试里的盲点补齐了面试时的容错率就会高很多。6.3 针对小红书研发岗的面试准备要点小红书研发岗的面试风格整体上偏技术和项目并重。技术面会问算法题也会深挖你做过的项目尤其是涉及高并发、分布式、微服务的部分。面试官比较关注候选人对系统设计的理解而不仅仅是会写CRUD。我建议在笔试结束后就开始准备一场“项目深挖”把你的项目从背景、目标、技术选型、难点、解决方案到最终效果像讲故事一样完整梳理一遍。面试官最喜欢问的是“为什么这样设计”“有没有考虑过其他方案”“遇到了什么困难”这些问题都需要你想清楚再答。第三批笔试的时间节点临近秋招尾声面试准备一定要高效别再从头看一遍八股文直接对着自己的项目逐个环节打磨。6.4 多批次机会的后续补录还有一个情况想提醒大家。小红书的秋招秋招笔试虽然分批次但批次结束不代表招聘彻底结束。每年11月到12月会有一波补录主要面向前期笔试面试表现不错、但没拿到意向书的候选人。也就是说你在第三批笔试中的成绩如果还可以即使面试被刷也有可能在补录阶段被重新捞起来。所以第三批笔试的每一步都不能敷衍。笔试成绩不仅是笔试那场的评判还会成为后续补录的重要参考。我见过一个同学笔试发挥平平但也没挂面试被刷后沉寂了一个月补录阶段又被捞起来拿到了offer。这种事情在秋招里不罕见关键就是你前期的每一个环节都别掉链子。回看这次第三批笔试说实话它没有什么“偏题怪题”每一道题都在考察一个研发工程师的基本素养数据结构有没有吃透、算法思维够不够快、计算机基础扎不扎实、能不能在有限时间内写出能跑的代码。相比之下小红书的笔试更看重“工程化能力”就是你在真实业务中写代码的那种感觉而不是纯粹的刷题速度。对后续参加笔试的同学我的建议是把这段时间当作一次系统性的基础复习别抱着押题的心态扎扎实实地把每个模块弄懂笔试结果自然会对得起你的准备。
返回列表