目录
正在加载目录...

Two Sigma OA Questions | HackerRank 三题 顺利通过

最近刚刷完 Two Sigma OA Questions ,在 HackerRank 平台上进行。三道题整体有一定水平,比之前做的 TikTok、Amazon 等正常一些,我大概花了 40 分钟左右就全部写完并通过了所有测试用例。之前做过不少大厂 OA,这次感觉还算稳。

Two Sigma 的 OA 题型偏工程实现和统计建模,考察点比较全面。下面把三道题的详细描述和我的解题思路分享给大家,供准备 Two Sigma 或者其他量化/金融科技公司 OA 的同学参考。

Two Sigma OA Questions | HackerRank 三题 顺利通过

Two Sigma OA Questions 独家整理

第一题:Linear Interpolator(线性插值)

题目描述: 给定 n 个点(x_knots, y_knots),实现线性插值函数。当输入 x 在点范围内时进行分段线性插值,当 x 在范围外时进行外推。如果有重复 x 点,需要合并处理。

Two Sigma OA Questions | HackerRank 三题 顺利通过

解题思路: 我先把点按 x 坐标排序,遇到重复 x 就合并(取最后一个 y 或按要求处理)。然后用二分查找找到输入 x 所在的区间。如果 x 刚好等于某个 knot,直接返回对应 y 值;否则用前后两个点构建直线公式计算插值值。若 x 越界,就用最左或最右的区间进行外推。这个方法时间复杂度主要是排序 O(n log n) + 二分 O(log n),效率很高。

第二题:Daily Temperature By Town

题目描述: 给定多个城镇和 NYC 的每日温度数据,需要回答多个统计问题,包括温差最大地区、条件中位数、单变量回归系数、最佳单/双变量组合,以及通过贪心选择 5 个城镇预测 NYC 温度等。

Two Sigma OA Questions | HackerRank 三题 顺利通过

解题思路: 这题需要分模块处理。Q1 用标准差找出波动最大的列;Q2 先筛选 Town2 在 90~100 之间的数据,再计算 NYC 温度的中位数;Q3 对每对资产计算单变量回归系数并求绝对值之和;Q4 遍历所有单变量选 MSE 最小的;Q5 遍历所有双变量组合选 MSE 最小的;Q6 用贪心前向选择,每轮加入使当前模型 MSE 下降最多的特征,共选 5 个。整体思路清晰,注意处理好数据清洗和边缘情况。

第三题:Efficient Regression V5

题目描述: 实现资产回报 X 与 Y 的无截距回归系数 beta,支持批量计算和流式在线更新。

Two Sigma OA Questions | HackerRank 三题 顺利通过

解题思路: 批量计算时,对每对列分别计算 sum_xy 和 sum_xx,然后 beta = sum_xy / sum_xx。在线更新部分维护累积的 sum_xy 和 sum_xx,每来一批新数据就更新累积值并重新计算 beta。这样既支持批量处理,也能高效处理流式数据,时间和空间复杂度都很友好。

最后想分享一下我的备战心得

Two Sigma 的 OA 题量和难度都挺实在的,尤其是统计建模和在线更新相关的题,如果没提前系统练过,现场容易卡时间或者思路不清晰。我在准备过程中找 Interview Aid 做了 OA 辅助,如果你也马上要面 Two Sigma 或者其他量化公司 OA,时间又比较紧,提前找专业辅助真的能省很多弯路。

END