TikTok 26NG OA 3月最新真題|CodeSignal 四題輕鬆拿下

最近連續幫學員處理了幾場 TikTok 26NG OA ,這一場整體下來節奏非常順。題型還是一貫的熟悉套路,基本上沒有新花樣,如果之前有做過 TikTok 或同類型公司的 OA,很容易進入看到題就知道怎麼寫的狀態。這次 CodeSignal 四題,全程推進非常流暢,十幾分鐘基本上可以搞定。

TikTok 26NG OA 3月最新真題|CodeSignal 四題輕鬆拿下

TikTok 26NG OA 整体情况

平臺:CodeSignal
題量:4 題
長度:一般 70-90 分鐘
難度:Easy – Medium 偏 Easy

TikTok 26NG OA 真題分享

無人機配送步行距離計算

題目描述

你需要將貨物從位置 0 運送到目標位置 target,沿途有若干充電站 stations。配送規則如下:

  1. 找到前方最近的充電站。如果沒有充電站,步行將貨物運送到目標位置。
  2. 從該充電站派出滿電無人機,盡可能向目標方向運送貨物。
  3. 如果未到達目標,步行到無人機降落點取回貨物,重複步驟 1。

計算你步行運送貨物的總距離。

示例

  • 輸入:target = 23stations = [7, 4, 14] → 輸出:4解釋:從 0 出發,步行到最近的充電站 4(距離 4),無人機飛到 14;再從 14 派出到最近的充電站 4(距離 4),無人機飛到 14;再從 14 派出到 23,總步行距離 44。
  • 輸入:target = 27stations = [15, 7, 3, 10] → 輸出:7解釋:從 0 出發,步行到最近的充電站 3(距離 3),,飛到 13;步行從 13 到最近的充電站 3(距離 3),無人機飛到 13;步行從 13 出發,步行到最近的無人機站是實際充電到最近的 10 到 13 到最近的15,步行距離 15-13=2

解題思路

T2 從0 走到 target,可以藉助一些點 p[i],從 p[i] 走到 p[i]+10。你要統計的是實際步行的總距離,也就是去掉那些「借助點跳過去」的部分。貪心做法:先把點排序,然後每輪找當前位置之後能用的點,把從當前位置走到那個點的距離加到總距離裡,再把當前位置更新成那個點 +10,繼續走,直到到達或超過 target。就這麼模擬,貪心選的可用點。

報紙排版對齊

題目描述

你是報紙版面編輯,需要將文字依要求排版:

  • paragraphs:段落數組,每個段落是單字數組。
  • aligns:段落對齊方式數組,元素為 "LEFT""RIGHT"
  • width:每行最大字元數(不含邊框)。

排版規則:

  1. 每個段落的單字依序排列,單字間用空格分隔。
  2. 每行盡量多放單字(總長度 ≤ width),放不下則換行。
  3. 多餘空白以對齊方式處理:LEFT 則結尾補空格,RIGHT 則開頭補空格。
  4. 最終輸出以 * 字元包裹邊框(邊框不計入 width)。

傳回排版後的報紙頁面字串陣列。

解題思路

依題目要求的格式排序。每組單字,我們維護目前行的長度,用雙指針遍歷單字,拼接進當前行,如果拼不下就新開一行。輸出的時候,根據題目說的 left/right 對齊方式,把每行調整成對應的格式就行。

山峰高度最相似對

題目描述

登山者只能比較位置間隔至少為 viewingGap 的山峰,需要找出滿足 |a - b| >= viewingGap 的所有山峰對中,高度差最小的那一對,並返回該最小高度差。

示例

  • 輸入:heights = [1, 5, 4, 10, 9]viewingGap = 3 → 輸出:4可比較的對:(0,3) 差 9、(0,4) 差 8、(1,4) 最小差 4 → 最小
  • 輸入:heights = [3, 10, 5, 8]viewingGap = 1 → 輸出:2任兩峰都可比較,最小差為 2(如 3 與 5、5 與 8)

解題思路

在滿足 |a-b|>=lim 的情況下,找差的最小值,就從左到右掃,用離散化+樹狀數組來維護已有高度,在對當前高度二分找前驅和後繼就行了

手機備用電池使用

題目描述

手機需持續使用 t 分鐘,備用電池依序循環使用:每顆電池使用 capacity[i] 分鐘後耗盡,需充電 recharge[i] 分鐘才能再次使用。若某時刻所有電池都在充電,則返回 -1;否則返回 t 分鐘內完整使用的電池數量。

示例

  • 輸入:t = 16capacity = [2, 5, 6]recharge = [12, 1, 4] → 輸出:3流程:使用電池 0 (2min)→電池→電池 (5min)→電池 2 6min),時,其充電已完成,繼續使用至 16min,共完整使用 3 顆電池。

解題思路

要你輪流模擬電池供電直到時間 t,然後算用了多少個電池,維護電池下一個充滿的時間位置,然後不斷的從當前位置往後找合法位置就行了,如果某一塊電池覆蓋了剩餘時間的話,這個電池還必須不計入總數。

TikTok OA 建议

TikTok OA 雖然整體難度不高,但很多同學都是在關鍵節點上參加考試,比如同時撞多場 OA、衝 return offer 不容失誤,或者當天狀態不穩定容易寫錯代碼,這種情況下其實非常考驗發揮的穩定性;如果有實時思路提醒會輕鬆很多,比如說麵時能及時分配出關鍵方向、寫偏時幫你快車做的時間幫你 OA無痕助攻 一週基本上能接三、四場,題庫和套路都很穩定,如果你希望考試更穩一點、有個兜底保障,可以了解一下。

author avatar
Jory Wang Amazon資深軟體開發工程師
Amazon 資深工程師,專注 基礎設施核心系統研發,在系統可擴充套件性、可靠性及成本最佳化方面具備豐富實戰經驗。 目前聚焦 FAANG SDE 面試輔導,一年內助力 30+ 位候選人成功斬獲 L5 / L6 Offer。
END
 0