TikTok 26NG OA 3月最新真题|CodeSignal 四题轻松拿下

14 Views
No Comment

最近连续帮学员处理了几场 TikTok 26NG OA ,这一场整体下来节奏非常顺。题型还是一贯的熟悉套路,基本没有新花样,如果之前有做过 TikTok 或同类型公司的 OA,很容易进入看到题就知道怎么写的状态。这次 CodeSignal 四道题,全程推进非常流畅,十几分钟基本可以搞定。

TikTok 26NG OA 3月最新真题|CodeSignal 四题轻松拿下

TikTok 26NG OA 整体情况

Platform: CodeSignal
题量:4 题
时长:一般 70-90 分钟
难度:Easy – Medium 偏 Easy

TikTok 26NG OA 真题分享

无人机配送步行距离计算

Question description

你需要将货物从位置 0 运送到目标位置 Target,沿途有若干充电站 stations。配送规则如下:

  1. 找到前方最近的充电站。如果没有充电站,步行将货物运到目标位置。
  2. 从该充电站派出满电无人机,尽可能向目标方向运送货物。
  3. 如果未到达目标,步行到无人机降落点取回货物,重复步骤 1。

计算你步行运送货物的总距离。

Example:

  • Enter:target = 23,stations = [7, 4, 14] → 输出:4解释:从 0 出发,步行到最近的充电站 4(距离 4),无人机飞到 14;再从 14 派出无人机到 23,总步行距离 4。
  • Enter:target = 27,stations = [15, 7, 3, 10] → 输出:7解释:从 0 出发,步行到最近的充电站 3(距离 3),无人机飞到 13;再从 13 出发,步行到最近的充电站 10(实际是 13 到 10?修正:最近的前方充电站是 15,步行距离 15-13=2?最终总步行距离为 7)。

Problem-solving ideas

T2 从0 走到 target,可以借助一些点 p[i],从 p[i] 走到 p[i]+10。你要统计的是实际步行的总距离,也就是去掉那些“借助点跳过去”的部分。贪心做法:先把点排序,然后每轮找当前位置之后能用的点,把从当前位置走到那个点的距离加到总距离里,再把当前位置更新成那个点 +10,继续走,直到到达或超过 target。就这么模拟,贪心选的可用点。

报纸排版对齐

Question description

你是报纸版面编辑,需要将文本按要求排版:

  • Paragraphs:段落数组,每个段落是单词数组。
  • Aligns:段落对齐方式数组,元素为 "LEFT" Or "RIGHT".
  • Width:每行最大字符数(不包括边框)。

排版规则:

  1. 每个段落的单词按顺序排列,单词间用空格分隔。
  2. 每行尽可能多放单词(总长度 ≤ Width),放不下则换行。
  3. 多余空白按对齐方式处理:LEFT 则末尾补空格,RIGHT 则开头补空格。
  4. 最终输出用 * 字符包裹边框(边框不计入 Width).

返回排版后的报纸页面字符串数组。

Problem-solving ideas

按题目要求的格式排序。每组单词,我们维护当前行的长度,用双指针遍历单词,拼接进当前行,如果拼不下就新开一行。输出的时候,根据题目说的 left/right 对齐方式,把每行调整成对应的格式就行。

山峰高度最相似对

Question description

登山者只能比较位置间隔至少为 viewingGap 的山峰,需要找出满足 |a - b| >= viewingGap 的所有山峰对中,高度差最小的那一对,并返回该最小高度差。

Example:

  • Enter:heights = [1, 5, 4, 10, 9],viewingGap = 3 → 输出:4可比较的对:(0,3) 差 9、(0,4) 差 8、(1,4) 差 4 → 最小为 4
  • Enter:heights = [3, 10, 5, 8],viewingGap = 1 → 输出:2任意两峰都可比较,最小差为 2(如 3 与 5、5 与 8)

Problem-solving ideas

在满足 |a-b|>=lim 的情况下,找差的最小值,就从左往右扫,用离散化+树状数组来维护已有高度,在对当前高度二分找前驱和后继就行了

手机备用电池使用

Question description:

手机需要持续使用 T 分钟,备用电池按顺序循环使用:每块电池使用 Capacity[i] 分钟后耗尽,需充电 Recharge[i] 分钟才能再次使用。若某时刻所有电池都在充电,则返回 -1;否则返回 T 分钟内完整使用的电池数量。

Example:

  • Enter:t = 16,capacity = [2, 5, 6],recharge = [12, 1, 4] → 输出:3过程:使用电池 0 (2min)→电池 1 (5min)→电池 2 (6min),累计 13min;再循环到电池 0 时,其充电已完成,继续使用至 16min,共完整使用 3 块电池。

Problem-solving ideas

要你轮流模拟电池供电直到时间 t,然后算用了多少块电池,维护电池下一个充满的时间位置,然后不断的从当前位置往后找合法位置就行了,如果某一块电池覆盖了剩余时间的话,这个电池还必须不计入总数。

TikTok OA 建议

TikTok OA 虽然整体难度不高,但很多同学都是在关键节点上参加考试,比如同时撞多场 OA、冲 return offer 不容失误,或者当天状态不稳定容易写错代码,这种情况下其实非常考验发挥的稳定性;如果有实时思路提醒会轻松很多,比如卡住时能及时点出关键方向、写偏时帮你快速纠正、同时还能帮你控节奏避免时间分配翻车,我们这边做 TikTok OA 已经非常熟了, OA traceless assist 一周基本能接三四场,题库和套路都很稳定,如果你希望考试更稳一点、有个兜底保障,可以了解一下。

author avatar
Jory Wang Amazon Senior Software Development Engineer
Amazon senior engineer, focusing on the research and development of infrastructure core systems, with rich practical experience in system scalability, reliability and cost optimization. Currently focusing on FAANG SDE interview coaching, helping 30+ candidates successfully obtain L5/L6 Offers within one year.
END
 0