最新 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,可以来聊聊,针对你目前的水平给你一套更有针对性的准备方案。

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