Optiver OA 一直以“速度 + 正确性”著称,今年这套 12.4 的版本依旧不留情面:三道Coding,全是交易场景模拟,代码量不算大,但逻辑非常绕,任何一步漏了 edge case 都会挂。我们学员当时是 Programhelp OA无痕联机助攻,整个过程节奏压得很稳,三题一次过。
下面按顺序复盘一下题目内容和难度分布。
Problem 1: Counting Trading Sequences
题意不长,但非常“Optiver 风味”。题目给你:
- 一个价格序列
- 要你 count all valid profitable trading sequences
核心规则:
“A valid trading sequence is defined as a pair (i, j) such that
i < j and price[i] < price[j].
Count how many such valid trading sequences exist.”
看似就是 count increasing pairs,但实际坑点很多:
- 重复价格是否算 valid
- 连续下降区间是否影响统计
- 长度为 1 的区间必须忽略
- 非严格上升 vs 严格上升需区分
- 大输入下需要 O(n) 或 O(n log n) 才能过
简单暴力会 TLE,最后我们学员是用“维护前缀更小元素个数”的方式做出来的。
Problem 2: Backtesting a Proportional Allocation Strategy
第二题就是典型的回测题:
“Given daily returns for multiple assets and a fixed proportional allocation vector,
compute the cumulative return of the portfolio from day 1 to day N.”
本质是模拟组合收益:
- 输入:
returns[day][asset] - 每天:
portfolio_return = sum(weight[i] * returns[day][i]) - 输出:累计收益(通常是 multiply,而不是加总)
这题真正的考点不是数学,而是:
- 浮点误差累积
- weight + return 同时是小数
- 精度不够会导致后两个 hidden tests 直接 fail
学员一开始用 Python float,一度卡在 89% 测试,Programhelp 提醒他“用 Decimal 重算每日累积”后顺利一次 AC。
Problem 3: Order Book Matching Simulation
这道是整套 OA 难度最高的题,完全是工程级模拟。题目提供一串订单,每个订单格式如下:
{ "type": "buy" / "sell", "price": x, "size": y }
“Simulate an order book and return all unmatched orders after processing the list.”
你需要实现一个 双向 order book:
- buy book:从高到低
- sell book:从低到高
- 每来一个新订单就立即撮合
- 支持 partial match
- FIFO for orders at the same price
- leftover 才加入 book
整个过程非常考验细节:
- 买盘要吃最便宜卖盘
- 卖盘要吃最高买盘
- partial fill 后不能直接 break,需要继续循环
- price 相同但不同时间进来的订单要保持顺序
- 删除 size=0 的订单节点
很多同学掉在一个经典坑:
剩余 size > 0 时继续撮合,而不是直接 push 到 book。
我们学员当时也是在这个逻辑里停顿,Programhelp 语音提醒了关键一步:“don’t break — continue matching until size becomes zero”,补齐后所有隐藏用例过了。
总结
Optiver 今年 OA 难度整体偏高,但出题非常稳定:
| Problem | Type | Difficulty | 考点 |
|---|---|---|---|
| P1 | Counting sequences | 中 | 单调逻辑 + 边界 |
| P2 | Portfolio backtest | 中上 | 浮点精度 + 累积计算 |
| P3 | Order book simulation | 高 | 交易系统模拟、队列、排序 |
我们学员最终三题一次 AC,用时 50 分钟左右。Optiver 的 OA 特点就是:
代码要写得快,但更要写得准,不允许有逻辑小错误。
为什么你需要 ProgramHelp 的辅助?
Optiver 的 New Grad Package 起薪通常在 $200k – $300k (Total Comp)。这是你职业生涯中最昂贵的一场考试。
全网最全 Quant 题库: 我们覆盖 Optiver, Jane Street, Citadel, Akuna 等顶级公司的最新题库。刚才提到的这三道题,我们的 Backend 系统中早有完整解法。
Ex-FAANG & Quant 导师坐镇: 我们的辅助不是普通的“代写”,而是由拥有实战经验的资深工程师进行 Real-time Coding Support。
100% 安全与原创: 我们不仅保证 All Cases Passed (全绿),更注重代码风格的自然度。我们会根据你的过往代码习惯调整变量命名和逻辑结构,彻底规避 Code Signal 和 HackerRank 的查重与 AI 判定。