最近 Two Sigma OA 又陆续放出来了,今天刚做完一套,整体感受一句话总结:题目不偏不怪,难度中等偏基础,但对实现细节和数学理解要求比较扎实。我这套 OA 全程大概二十多分钟完成,没有特别卡壳,思路清楚的话节奏还是很顺的。给还没做、或者正在观望的同学简单拆一下这次 OA 的题型和核心思路,供参考。
Two Sigma OA 真题分享 & 解题思路
第一题:线性插值器
这题本质是在实现一个带规则的线性插值函数,但细节比普通插值多不少。
核心步骤可以拆成三步:
第一步是预处理数据点。
需要先按照 x 值对所有点排序,同时要处理重复 x 的情况。规则是:
- 当输入 x ≤ 该重复 x 时,取对应的最小 y
- 当输入 x > 该重复 x 时,取最大 y
这一点如果没看清,很容易在重复点上直接 WA。
第二步是定位区间。
对于给定的输入 x,需要判断它落在哪两个已知点之间:
- 如果在区间内,就做正常插值
- 如果在最左或最右,需要做外推,用最近的两个点连成的直线
第三步是计算 y 值。
统一使用两点式直线公式即可,外推和插值逻辑一致,只是区间不同。
整体不难,但非常考察你对边界条件和规则描述的理解能力,很 Two Sigma。
第二题:城镇气温分析
这题是整套 OA 里信息量最大的一题,一共 5 个小问,围绕一个多城镇气温数据集展开。
Q1:找温度变异最大的城镇
思路很直接,对每个城镇计算温度的标准差,取标准差最大的那个。
Q2:条件筛选 + 中位数
筛选 Town2 温度在 90–100 区间内的记录,然后取对应的 NYC 温度中位数,最后按题意取整即可。
Q3:线性回归(带截距)
对每一个城镇和 NYC 做一元线性回归,形式是
y = a + b x
用最小二乘法算系数,最后对每个城镇计算 |a| + |b|,返回最大值。
Q4:单城镇 MSE 最小
依然是回归问题,对每个城镇单独和 NYC 建模,计算预测的 MSE,找误差最小的城镇。
Q5:双城镇组合 MSE 最小
把两个城镇作为自变量,一起回归 NYC,找使 MSE 最小的那一组。
这一题非常明显是想看你对统计量、回归建模、误差评估的整体理解,而不是单点技巧。
第三题:资产 Beta 计算
这题非常典型 Two Sigma / Quant OA。
第一部分是基础版 Beta 计算。
给定一组资产收益率 x 和 y,计算无截距线性回归的斜率 β,公式本质是:
β = Σ(xy) / Σ(x²)
第二部分是在线计算。
数据按批次到来,第 j 次输出时,要求用 从第 1 批到第 j 批的所有数据重新计算 β。
如果每一轮都重新遍历全部历史数据,时间复杂度会爆,所以关键在于优化。
正确思路是维护累积统计量,比如:
- 累积 Σx²
- 累积 Σxy
每一批更新一次统计量,就能 O(1) 算出新的 β,非常经典的在线算法思想。
总体评价 & 给后面同学的建议
这套 Two Sigma OA 的感觉很明确:
- 不追求花里胡哨的算法
- 更看重数学建模、统计理解和工程实现的稳健性
- 对边界条件、效率、公式理解要求很高
如果你对概率统计、线性回归、最小二乘这些内容本身就比较熟,这套题会做得很舒服;反之,临时硬刚会比较吃力。
Two Sigma 面试别一个人死磕,效率差太多
如果你现在正卡在 OA 或 VO 阶段,其实 Two Sigma 的题型是高度可预测、也高度可拆解的。我们最近也帮不少同学完整走过 Two Sigma 的 OA + VO 流程,包括实时思路校准、统计推导提醒、复杂回归题的拆解节奏把控,整体通过率会稳很多。欢迎直接来交流,OA / 面试辅助 都可以聊。