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 判定。