顶级技术积累,独家面试资源,免费Mock直播展示
Senior @ Meta
UCSD博士毕业,前Pinterest senior MLE。在CVPR、ECCV等顶级学术会议上以第一作者身份发表过十余篇论文。研究方向集中在可解释的人工智能和鲁棒模型架构的研究。对MLE的面试技巧和得分点了如指掌,培训了团队内的数十名新同事。
Luke P
Senior @ 谷歌
前谷歌高级软件开发工程师,精通分布式系统、云计算和大规模数据处理。在顶级技术会议KubeCon和Google Cloud Next上发表多篇技术报告。专注于提升系统的可扩展性和可靠性。在Github上发布了System Design面试手册,收获上千 🌟
3-1 @ Tiktok
前TikTok工程老兵,擅长大规模互联网应用的开发与优化,专注于提升应用的性能、用户体验和平台安全性。在分布式系统、微服务架构和实时数据处理领域有深厚的技术积累。专做Amazon和Meta的SDE面试辅助,一年内曾拿下超过30个 L5 offer。
TikTok OA面经|TikTok 一亩三分地|TikTok OA真题
想要和我们的技术团队进行一次免费的沟通?
我们会直击要点,回答你的所有疑问,并介绍我们的服务。
还有顾虑?
我们可以提供免费的vo mock直播展示,我们的团队到底有多少水平,你说了算。
TikTok CodeSignal 面试题回顾 & 解题思路整理
这次 TikTok 的 OA 一共四道题,都是在 CodeSignal 上完成的,整体难度中等,题型覆盖扫描线、模拟、双指针、滑动窗口等常用算法。题目的特点是逻辑不复杂,但实现细节多,尤其是 tie-break 条件、边界处理和数据结构选择,稍有疏忽就可能丢分。下面分题详细说明。
1. 灯光照射的最大重叠点
题目给定 N 盏灯,每盏灯的照明范围是 [pos - r, pos + r],要求找出被最多灯照亮的坐标,如果有多个并列则取最小的坐标。这是一道典型的区间重叠统计题,可以用扫描线高效解决。做法是将每个区间的起点记为亮度 +1,区间的终点+1 位置记为亮度 -1,然后将这些事件按照坐标排序,从左到右扫描并维护当前亮度。当亮度超过历史最大值时,更新最大值和当前坐标;当亮度等于最大值时,比较坐标大小来满足 tie-break 条件。由于需要排序,整体复杂度是 O(N log N)。实现细节上要注意区间是闭区间,所以终点处理时需要用 end+1 来标记减少亮度,否则会多算最后一个点;另外 tie-break 条件必须在亮度相等时单独判断,否则结果可能错误。
2. 包裹分发系统
有多个分发中心,每个中心有固定容量,包裹按顺序分配。当输入 CLOSURE x 时,表示关闭中心 x 直到下一轮。在每轮结束时,除了关闭的中心外,其他中心的容量会恢复到初始值。题目要求找出处理包裹最多的中心,如果有并列则取最大 index。这道题本质是一次较长的模拟过程,可以用两个数组分别维护每个中心的当前剩余容量和累计处理包裹数。在分配包裹时,如果遇到关闭中心或容量不足则跳过,否则分配并减少容量。每轮结束时需要恢复容量,但要注意关闭的中心在下一轮前不能恢复。复杂度是 O(N * M),其中 N 是中心数量,M 是包裹总数。实现时最大的坑是 tie-break 条件和关闭中心的恢复逻辑,如果恢复处理不当会导致统计错误,另外输入的处理顺序也要完全按照题意执行,不能跳步优化,否则可能丢掉模拟的精确性。
3. 字符串逐位相加
给定两个数字字符串,从右到左逐位相加但不进位,如果一个字符串较短,剩下的部分直接取另一个字符串的数字,最后拼接成结果输出。这题看起来简单,但要求实现细节正确且性能合理。标准做法是用双指针从两个字符串末尾向前移动,每一位直接相加,将结果(个位值)追加到一个临时列表中,直到两个字符串都遍历完成。最后将结果列表反转再拼接成字符串输出。复杂度是 O(max(lenA, lenB))。实现时要注意不能直接用字符串累加结果,因为那样会导致 O(n²) 的性能退化;同时,由于不进位,所以每位的和不需要拆分十位,只保留相加结果本身,这一点和常规的大整数加法不同,很多人在第一次写的时候会习惯性加上进位处理,这是不必要的。
4. 三连数大于阈值
给定一个整数数组和阈值 threshold,找到第一个连续三个数都大于 threshold 的起始下标,如果不存在则返回 -1。这题非常直接,顺序遍历数组,依次检查当前位置和后面两个位置的值是否都大于 threshold,一旦满足条件立即返回下标;遍历结束仍未找到则返回 -1。复杂度是 O(N)。实现时要特别注意两个细节:一是当数组长度小于 3 时,可以直接返回 -1;二是在检查 nums[i+2] 时要确保不越界,因此循环的范围应限制到 len(nums) - 3。虽然这题本身没什么算法难度,但在 OA 中很可能是用来卡粗心和边界处理的,如果因为越界或条件判断顺序出错而丢分会非常可惜。
整体来看,这套 TikTok OA 虽然算法上没有特别复杂的设计,但考察面很广且细节要求很高,尤其是在时间有限的情况下对基础算法模板的熟练程度和实现细致度提出了要求。解题时要先精确读题,尤其注意并列情况下的取值规则;实现时优先保证正确性,即使复杂度稍高也先拿到 AC,再考虑优化;同时在写扫描线、模拟、双指针等经典模板时做到条件反射式调用,减少思考和翻车的时间。最后,不要忽视边界情况和性能细节,这些往往决定了能否在 TikTok OA 中稳稳过关。
求职辅助服务,是关于时间和品质的较量。咨询 Alpha 小助手,获取最专业的Tech求职辅助。
