TikTok 的面试流程整体偏快,通常在两周内可以完成全部环节,适合正在积极寻找实习或全职机会的留学生。整个大的流程一般分为三轮:OA、技术三轮面试,字节面试流程大致分为四轮,一面部门同事或直属leader,二面直属leader或大部门负责人,三面大部门负责人或跨部门交叉面,四面HRBP或HRG。 一亩三分地 tiktok 上有很多相关的面试经验,这里我做了个汇总。
Tiktok面试时间线
官网投递简历 11.15 hr联系约一面(晚上十点半加的我)
11.22 一面(5min后约二面) 中间周末
稍微问了下简历最近一段实习就开始做题,面试官很友好没有为难,楼主自认为发挥不错,题写得快。
(一期间 GHC + 其他事情耽搁了,所以拖的比较久,不知道是不是这里出问题了,让面试官不爽了–)
11.28 二面(2天后约三面)
开始思路卡了,写了 code 但比较慢,follow up 没时间写,只说了思路。这一轮楼主觉得自己发挥只有 75 分,写题不快。不过好在有辅助和面试官的引导,给约了三面。
12.07 三面(隔天收到OC,3h不到就收到了书面offer)
首先是 OA,题目总体偏 LeetCode 中等难度,常见的数据结构包括哈希表、双指针、堆、并查集等,算法类型也涵盖了滑动窗口、前缀和、DFS/BFS 等。建议大家提前刷题,注重时间复杂度的优化。在 TikTok 的 OA 中,速度和准确性都非常关键,一旦写不完或者报错较多,很容易被直接筛掉。我当时做的是一道关于找最短路径的问题,需要结合 BFS 和优先队列,平时刷题中如果没见过类似的可能会卡住。
一亩三分地 tiktok 面经汇总
面经 1
TikTok Software Engineer面试强度不小,下面和大家简单聊聊难度和面试感受:
Round 1 – Recruiter Call (30min) 开场问题是自我介绍 + why TikTok。重点考察沟通能力、对公司了解程度和 motivation。我把个人背景和 TikTok 的技术挑战结合起来,强调了对短视频技术的 genuine interest。
Round 2 – Technical Interview (45min) 三道 coding + 业务追问: Video Recommendation Ranking:不止看代码,更看你对推荐逻辑、cold start 问题和 scale 的思考。 Sliding Window Maximum:经典题,在短视频 context 下是“窗口期内找热门视频”。 LRU Cache Implementation:直接考 caching strategy,贴近业务。
Round 3 – Virtual Onsite (VO) 核心环节,综合考察 coding、system design 和沟通表达。
面经 2
第一轮一个小时VO,面试官是英国的胖哥,全程英文,先是半小时deep dive简历内容,之后半小时做题只有一道题。 题目是:给定一个按非递减顺序排列的整数单链表,请根据节点的绝对值大小重新对其进行排序,要求排序后的链表满足绝对值非递减的顺序。
第二轮 面试官上来先是双方简单自我介绍,接着就是直接给题目,题目还算简单,幸好之前有交流模拟过,尤其是在项目和算法部分都很顺利,面试官在最后的交流中还多次赞许,全程下来还算比较顺利吧。第二轮给的题目是:现有一个单链表,其中的元素已按非递减顺序排列。请你编写一个程序,将这个链表按照节点值的绝对值大小重新排序,使得绝对值小的节点排在前面,绝对值大的节点排在后面。如果有多个节点具有相同的绝对值,则它们之间的相对顺序应保持不变即稳定排序。
HM面试
第三轮HM面试,主要拷打八股文和简历项目,算法题都比较简单。
- 在工作期间遇到的一个比较难的问题,以及对应的解决方案
- 从输入 URL 到页面加载的过程
- 为什么跳槽?
- 未来规划
- 说一下项目的技术栈,以及项目中遇到的一些问题
- 一个业务场景:面对产品不断迭代,以及需求的变动该怎么应对?具体技术方案如何实现?
- 你提到了
requestAnimationFrame,讲讲和setInterval的区别? - 用过 canvas 吗?如果要实现一个“一笔一画写汉字”的效果,应该怎么做?
- 算法题:写一个最多能并发执行 n 个 promise 的队列
- 算法题:给树上每个节点的父亲节点,还原树
面经 3
Round1
Round1: 面试官是个华人小哥,上来就简单聊了一下简历,双方自我介绍后还给了一些提示,关键词都是从简历中挑出deep dive 简单整理了一下和大家分享
Coding: 实现一个支持记录存取款操作含时间戳,查询实时余额以及统计时间段内余额变动的银行系统时间戳按序递增。 系统需记录每个账户带有时间戳的存取款流水,支持查询账户当前金额及指定时间范围内的资金净变动。
思路:按时间顺序记录交易流水,利用前缀和机制高效计算区间变动。 实现方案:为每个账户维护当前余额和一个时间戳,累计变动值 列表。执行存取款时更新余额并追加记录时间戳,累计值 += 变动金额。查询实时余额直接返回当前值。区间查询时:通过二分查找定位时间区间边界对应的累计值,计算差值作为区间变动结果。
Round2
Round2: 面试官是个年轻的ABC,还算好说话,全程都比较紧凑,简单的双方自我介绍之后,直接就给题了。
Coding:: 请设计一个银行账户管理系统,要求支持资金存取操作及基于时间范围的余额查询。需要实现以下功能接口: 1.资金存入账户名, 时间点, 金额: 在指定时间点向指定账户存入指定金额 2.资金支取账户名, 时间点, 金额:在指定时间点从指定账户支取指定金额 3.查询余额账户名:获取指定账户的最新余额 4.余额变动查询账户名, 起始时间, 截止时间:统计指定账户在给定时间范围内的资金净变动值。
思路:是通过为每个账户维护一个按时间戳排序的“前缀和”操作日志,利用二分查找快速计算任意时间区间的净余额变动。
Round3
这轮自我介绍后就是Coding,Coding上来就出一道字节题库里的经典 BFS 题/外星词典Alien Dictionary 题目:有一种使用英语字母表的外星语言,但字母顺序不同。给定一个由该外星语言单词组成的列表,且这些单词已经按照这种新语言的字母顺序 排序完成。你需要推导出这种语言可能的字母顺序 即字符的排列顺序。如果存在多种可能的顺序,返回其中任意一种即可。如果输入无效 例如,排序规则自相矛盾,则返回空字符串。 Follow up:如果有多种合法的字母顺序,要求返回字典序最小的那一个怎么办?
思路:可以用PriorityQueue最小堆,这样每次都能优先拿字典序最小的节点,面试官听完点头认可。
获取更多Tiktok相关面试真题
上面分享了部分 一亩三分地 tiktok 的真题,如果你需要更多Tiktok面试真题,可以与我们联系。字节总体感受是节奏比较快速,面试官水平比较高,看起来比较年轻,沟通起来顺畅,hr反馈比较及时,薪资给的中上,周期很快,不到2个月就可以走完流程,目前是三面通过状态,还在等流程。
Interview Aid 专注北美技术岗位的面试辅助,如果你近期也拿到Tiktok的面试,可以与我们联系,我们免费提供Tiktok OA真题和 Tiktok面经 参考。