最新 Two Sigma OA 2026 經驗分享 | 兩道真題 + 解法解析 + 高頻題型總結

最近帶同學刷了一套 Two Sigma OA ,題目不難,但非常考思維建模。和普通大廠 OA 不一樣,它更偏真實場景(比如流量統計、資源最佳化),關鍵不在寫程式碼,而在於能不能快速把問題抽象成正確模型。很多同學不是卡在實現,而是卡在“怎麼想”。這套 OA 區分度挺高:會建模的很快 AC,不會的容易直接卡住。

下面整理一下這次的真題和核心思路,給大家一個參考。

最新 Two Sigma OA 2026 經驗分享 | 兩道真題 + 解法解析 + 高頻題型總結

Two Sigma OA 基本資訊

  • 平臺:通常是 HackerRank / CodeSignal
  • 時長:75分鐘
  • 題量:2題
  • 難度:Medium → Medium+(偏思維)

題目 1:伺服器流量監控

題目描述

在一個客戶端 – 伺服器架構中,有 n 個客戶端和 1 臺伺服器。每個客戶端與伺服器的互動從時間 start[i] 開始,到時間 end[i] 結束(端點時間也計入互動時長)。

最大流量的定義是:伺服器同時處理的最大併發互動數。

請找到最早出現最大併發客戶端數的時間點。

示例

給定 start = [1, 6, 2, 9]end = [8, 7, 6, 10]

表格

時間 連線狀態 活躍客戶端數
1 客戶端 1 接入 1
2 客戶端 3 接入 1,3 → 2
3 1,3 → 2
4 1,3 → 2
5 1,3 → 2
6 客戶端 2 接入 1,2,3 → 3
7 客戶端 3 斷開 1,2 → 2
8 客戶端 2 斷開 1 → 1
9 客戶端 1 斷開、客戶端 4 接入 4 → 1
10 4 → 1
11 客戶端 4 斷開 0

最大併發數為 3,最早出現在第 6 秒,因此返回 6

解題思路

事件拆分:將每個客戶端的開始時間轉為(時間, +1)連線事件,結束時間轉為(時間, -1)斷開事件。

事件排序:優先按時間升序排列;時間相同時,連線事件(+1)排在斷開事件(-1)前面,保證端點時間計算準確。

遍歷計算:順序處理排序後的事件,動態維護當前併發連線數。每當併發數重新整理最大值時,記錄當前時間,該時間即為答案。

題目 2:最大吞吐量

題目描述

我們的系統中有一條由多個資料處理單元組成的流水線,每個單元的吞吐量由 throughput[i] 表示。這些單元按順序串聯,資料必須依次經過每個單元。因此,流水線的總吞吐量由吞吐量最小的單元決定,這個單元就是限制整體處理速度的瓶頸。

每個服務都可以獨立擴容:

  • i 個服務擴容 1 次的成本為 scaling_cost[i]
  • 對服務擴容 x 次後,它的吞吐量變為 throughput[i] * (1 + x) 條訊息 / 分鐘

给定两个长度为 n 的陣列 throughput(各服務初始吞吐量)、scaling_cost(各服務單次擴容成本),以及一個整數 budget(總預算),請找到最優的擴容方案,使得最終服務的吞吐量(即流水線的總吞吐量)最大化。

示例

給定 throughput = [4, 2, 7]scaling_cost = [3, 5, 6]budget = 32

最優擴容方案如下:

表格

服務索引 擴容前吞吐量 扩容后吞吐量 扩容次数 单次扩容成本 总花费
0 4 12 2 3 6
1 2 10 4 5 20
2 7 14 1 6 6

扩容后,三个单元的吞吐量分别为 12、10、14,流水线的总吞吐量由最小值 10 决定,这是该预算下能达到的最大值,因此答案为 10

函式要求

完成函数 getMaximumThroughput,参数如下:

  • int throughput[n]:每个服务的初始吞吐量
  • int scaling_cost[n]:每个服务单次扩容的成本
  • int budget:可用总预算

解題思路

用二分答案法,核心是猜测最终流水线的吞吐量T,寻找最大的可行值。具体而言,先确定T的合理范围,再对每个候选T进行可行性验证,计算每个服务至少需要扩容多少次才能使吞吐量不低于T,汇总所有服务的扩容总花费,若总花费不超过预算,则该T可行。之后根据可行性调整二分方向,可行则尝试更大的T,不可行则尝试更小的T,二分结束后,最大的可行T即为流水线能达到的最大吞吐量。

Two Sigma OA 2026 FAQ

Two Sigma OA 做完之后下一步是什么?

我这边后面接的是 Tech Screen。这一轮主要考察基础数据结构实现,面试官要求手写一个 hashmap,不能使用任何现成的 hashtable 库,需要自己实现 get 和 put 两个核心操作。整体思路是基于 bucket array配合 linked list 来解决 hash 冲突问题,同时还需要考虑设计的合理性,比如冲突处理方式、时间复杂度,以及是否支持扩容。难度不算特别高,但对基础掌握和代码细节要求比较扎实。

Two Sigma OA 支持哪些编程语言?有版本限制吗?

Two Sigma 的 OA 一般支持主流编程语言,比如 Python、Java、C++ 等,具体可选语言会在 OA 邀请邮件中明确说明。版本方面也不用太担心,常见的 Python 3.x、Java 8 及以上版本都是默认支持的。不同版本之间差异非常小,基本不会影响做题过程,也不需要做额外的兼容性处理,按照平时习惯使用即可。

关于 Two Sigma OA 的准备建议

如果你在准备 Two Sigma 这种偏建模、偏思维的 OA,很多时候卡的不是代码,而是思路怎么转化。这也是为什么不少同学刷了很多题,到了真正 OA 还是会卡住。我们这边长期在陪跑量化 / 大厂 OA,已经整理了一套比较成熟的题型框架和 OA輔助 经验。如果你时间比较紧,或者想更稳一点通过 OA,可以来聊聊,针对你目前的水平给你一套更有针对性的准备方案。

END
 0