← 返回博客列表
Two Sigma

【Two Sigma OA真題流出】120分鐘做兩道題?別被「寬鬆」的時間騙了!

2026-01-11

Two Sigma 作為頂級 Quant Fund(量化基金),其面試難度向來是業界標杆。最近流出的 OA(Online Assessment)給了 120分鐘 完成 2道演算法題

很多同學一看:「兩小時做兩道?這也太寬裕了吧!」

千萬別大意。 Two Sigma 的題目往往題目描述長、業務邏輯複雜、Corner Case 極多。時間給得長,是因為題目真的需要你花時間去「摳細節」。

我們 oavoservice 團隊第一時間拿到了真題,帶大家拆解一下這兩道題的「暗坑」。

🔍 真題一:IPO Share Allocation (IPO 股份分配)

題目核心: 模擬股票 IPO 的競價和分配過程。

競價規則: 用戶提交 (id, shares, price, timestamp)。

分配邏輯: 優先給出價最高的人。

關鍵難點: 如果最高價有多人,且剩餘股票不夠分怎麼辦?

規則是 Round Robin(輪詢):在同價位組內,按時間戳排序,每人先分 1 股,循環進行,直到每個人分夠了或者股票分完了。

輸出: 返回所有一股都沒分到的倒楣蛋 ID,按升序排列。

oavoservice 獨家解析:

這道題披著「業務邏輯」的外衣,實則考察 複雜模擬 + 多級排序

坑點 1 (Round Robin): 很多同學直接按時間排序後一把梭哈分配,這是錯的!題目要求是「一人一股輪著發」。

這意味著如果剩餘 3 股,有 2 個人,A想要 10 股,B想要 10 股。

結果是 A拿2股,B拿1股。而不是 A直接拿2股,B拿1股(雖然結果一樣,但如果 A 只想要 1 股,邏輯就完全不同了)。

坑點 2 (資料結構): 需要使用 PriorityQueue 或者自定義 Comparator 對 Bids 進行多級排序(Price DESC -> Timestamp ASC)。

解題思路:

  1. 將 Bids 按 Price 分組
  2. 從高價組開始處理,如果該組總需求 <= 剩餘股票,直接滿足
  3. 如果該組總需求 > 剩餘股票,進入 while 迴圈模擬 Round Robin 分配
  4. 記錄所有獲得 >0 股的使用者,最後與總使用者集合做差集

🔍 真題二:Sewer Drainage System (下水道排水系統)

題目核心: 給定一個樹形結構的排水系統,parent[i] 表示水從 i 流向 parent[i]。input[i] 是該節點的進水量。

任務: 切斷一條邊,將樹分成兩部分,使得兩部分的總流量之差絕對值最小。

oavoservice 獨家解析:

這是一道經典的 Tree DP / DFS 題目。

模型轉換: 雖然題目說水流向 root,但切斷一條邊本質上就是把某個節點 u 及其所有子節點(Subtree)分離出去。

數學推導:

我們需要最小化:| (TotalSum - SubtreeSum[i]) - SubtreeSum[i] |

即最小化:| TotalSum - 2 * SubtreeSum[i] |

解題思路:

  1. 建圖: 根據 parent 陣列構建 Adjacency List(鄰接表),注意題目給的是「子指向父」,我們需要轉成「父指向子」以便做 DFS
  2. 計算總流量: 遍歷 input 陣列求和得到 TotalSum
  3. DFS 後序遍歷: 自底向上計算每個節點的 SubtreeSum(包含自身的 input + 所有子節點的 SubtreeSum)
  4. 在計算過程中,代入公式 | TotalSum - 2 * SubtreeSum | 更新全局最小值

複雜度: 時間 O(N),空間 O(N)

💡 為什麼 120 分鐘還是有人掛?

這兩道題雖然演算法模型不偏門,但在高壓環境下:

如果你也在準備 Two Sigma, TikTok, Google, Amazon 等大廠的演算法與系統設計面試

或者面對 OA 感到心裡沒底:歡迎聯絡我們!

我們要做的不僅是「做對」,更是「滿分通過」。

OA 代寫 / 筆試保過: 覆蓋 Two Sigma, Citadel, JS 等頂級 Quant 以及各路 Tech 大廠

演算法面試輔助: 即時解決 Hard 難度的 Coding 題

穩定、安全、高效: 長期的實戰經驗,助您早日上岸

👉 立即添加微信:Coding0201

獲取最新大廠 OA 真題庫 & 免費諮詢服務!