9 月底刚结束了 LinkedIn SDE Virtual Onsite,整体体验下来比我预想的要流畅一些。主要原因是我提前做过 mock,把节奏和答题逻辑练过一遍,面试时就不会显得慌乱。第一轮算是比较典型的一轮 coding + 项目深挖的组合,下面就来详细说一下。

开场 & 自我介绍
面试官是一位白人男性,态度比较友好。开场先让我做一个自我介绍,我按照常规顺序来:
- 学校 & 专业
- 研究方向
- 实习/项目经历
在这里建议大家不要只背一段套话,而是挑重点展开。比如我在说项目经历的时候,不仅仅说“我做了一个机器学习项目”,而是具体点出项目的应用场景,以及自己主要的工作。这样可以让面试官更快找到想追问的点。
果然,面试官随即针对我的项目做了深入提问:
- 项目主要内容是什么?
- 用了哪些具体技术?
- 遇到的最大挑战是什么?你是怎么解决的?
- 从项目中学到的东西是什么?
这部分持续大概 10 分钟。整体感觉不是刁难,而是想看你对项目是否真的理解,以及能不能清楚表达思路。
Coding 第一题:储物柜开关状态
第一道题是经典题,Leetcode 上也有类似:
Problem 1: N lockers toggle problem
There are N lockers, all closed initially. On the first pass, you toggle every locker. On the second pass, you toggle every 2nd locker. On the third pass, every 3rd locker, and so on, until the Nth pass where you only toggle the last locker. Which lockers are open in the end?
关键点在于思路的转化。每个储物柜会被 toggled 的次数取决于它的因数个数。如果一个数字有偶数个因数,那么最后会关上;如果有奇数个因数,就会保持打开。只有完全平方数才有奇数个因数,所以最后打开的储物柜就是所有平方数的位置。
思路清楚之后,写代码就比较直接了。实现的时候我写了一个函数来判断哪些数字是 perfect square,然后返回结果。
时间复杂度上,最后代码可以做到 O(sqrt(N)),因为只需要遍历平方数就行。面试官问了复杂度的推导,我简单解释了一下。
Coding 第二题:Nested Integer Weighted Sum
第二道题同样是 Leetcode 常见题:
Problem 2: Nested List Weighted Sum
Given a nested list of integers, return the sum of all integers in the list weighted by their depth. Each element is either an integer or a list whose elements may also be integers or other lists.
标准解法就是递归。定义一个函数,传入当前 list 和 depth:
- 如果遇到 integer,就把
val * depth累加; - 如果遇到 list,就递归调用,depth + 1。
我很快写出了递归版本,面试官确认无误后,追问了一个 follow-up:如何优化时间复杂度。
这里就需要用 BFS 的方式来做,层序遍历,把每一层的整数先加到结果里,再往下一层传递。这样能避免重复计算深度,代码逻辑也更清晰。
这一题的难点其实不在 recursion,而是在思考 follow-up 的时候,你能不能迅速切换思路。很多人只会写 DFS,没想到 BFS 也可以解决。面试官主要就是看你的 problem solving 能力。
反问环节
最后进入反问。我问了岗位相关的要求,面试官分享了一些 LinkedIn 内部的情况:
- 应用工程师需要熟练掌握 AI 工具,提高日常开发效率;
- 更加注重 设计能力和影响力,而不仅仅是写多少行代码;
- 和 PM 的沟通非常重要,很多设计决策要跟产品保持一致。
整体氛围比较轻松,面试官回答问题的时候也很认真,感觉这家公司还是挺注重工程师成长的。
面试总结
这一轮整体体验还不错,题目难度都在 Leetcode Medium 水平:
- 第一题考察数论思维的转化;
- 第二题考察递归 + follow-up 思路。
真正的挑战是 思维的完整性:你不仅要写出代码,还要能解释复杂度、考虑优化方案。项目环节也不是随便聊聊,而是会深入问细节。
提前 mock 的确很重要,它能帮你熟悉面试的节奏,尤其是自我介绍和思路表达。如果临场才整理思路,容易说得比较乱。
拿下大厂 offer?找 Programhelp
这次能答得比较顺,Programhelp 的 mock 和实时提醒帮了很大忙:
- 远程 mock 模拟:提前演练过完整流程,把常见问题和思路顺序都练熟了。
- 语音助攻提示:面试中遇到思路卡顿的时候,有人实时提醒“先从因数个数考虑”“可以换成 BFS 看看”,能立刻点醒你。
- 代码注释与复杂度分析:不仅写出代码,还能帮你补充详细注释和复杂度分析,让答案更完整。
像 LinkedIn 这种 VO,coding 本身并不是最难的部分,关键是逻辑和思路。我们 programhelp 已经帮很多学员顺利拿下 LinkedIn、Amazon、Google 的 VO,如果你也在准备类似面试,可以考虑找我们助攻,效率会提升很多。