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拿1,B拿1(剩1股)
- 第二輪:A拿1(分完)
結果是 A拿2股,B拿1股。而不是 A直接拿2股,B拿1股(雖然結果一樣,但如果 A 只想要 1 股,邏輯就完全不同了)。
坑點 2 (資料結構): 需要使用 PriorityQueue 或者自定義 Comparator 對 Bids 進行多級排序(Price DESC -> Timestamp ASC)。
解題思路:
- 將 Bids 按 Price 分組
- 從高價組開始處理,如果該組總需求 <= 剩餘股票,直接滿足
- 如果該組總需求 > 剩餘股票,進入 while 迴圈模擬 Round Robin 分配
- 記錄所有獲得 >0 股的使用者,最後與總使用者集合做差集
🔍 真題二:Sewer Drainage System (下水道排水系統)
題目核心: 給定一個樹形結構的排水系統,parent[i] 表示水從 i 流向 parent[i]。input[i] 是該節點的進水量。
任務: 切斷一條邊,將樹分成兩部分,使得兩部分的總流量之差絕對值最小。
oavoservice 獨家解析:
這是一道經典的 Tree DP / DFS 題目。
模型轉換: 雖然題目說水流向 root,但切斷一條邊本質上就是把某個節點 u 及其所有子節點(Subtree)分離出去。
數學推導:
- 設整棵樹的總流量為 TotalSum
- 設切斷節點 i 與其父節點的邊,得到的子樹流量為 SubtreeSum[i]
- 那麼另一部分的流量就是 TotalSum - SubtreeSum[i]
我們需要最小化:| (TotalSum - SubtreeSum[i]) - SubtreeSum[i] |
即最小化:| TotalSum - 2 * SubtreeSum[i] |
解題思路:
- 建圖: 根據 parent 陣列構建 Adjacency List(鄰接表),注意題目給的是「子指向父」,我們需要轉成「父指向子」以便做 DFS
- 計算總流量: 遍歷 input 陣列求和得到 TotalSum
- DFS 後序遍歷: 自底向上計算每個節點的 SubtreeSum(包含自身的 input + 所有子節點的 SubtreeSum)
- 在計算過程中,代入公式
| TotalSum - 2 * SubtreeSum |更新全局最小值
複雜度: 時間 O(N),空間 O(N)
💡 為什麼 120 分鐘還是有人掛?
這兩道題雖然演算法模型不偏門,但在高壓環境下:
- 第一題的 Round Robin 模擬 極易寫出 Infinite Loop 或者索引越界
- 第二題的 建樹過程 容易出錯(Parent 陣列的處理)
- Two Sigma 的 Test Cases 覆蓋極廣,稍有疏忽就是 Runtime Error
如果你也在準備 Two Sigma, TikTok, Google, Amazon 等大廠的演算法與系統設計面試
或者面對 OA 感到心裡沒底:歡迎聯絡我們!
我們要做的不僅是「做對」,更是「滿分通過」。
✅ OA 代寫 / 筆試保過: 覆蓋 Two Sigma, Citadel, JS 等頂級 Quant 以及各路 Tech 大廠
✅ 演算法面試輔助: 即時解決 Hard 難度的 Coding 題
✅ 穩定、安全、高效: 長期的實戰經驗,助您早日上岸
👉 立即添加微信:Coding0201
獲取最新大廠 OA 真題庫 & 免費諮詢服務!