這是一次非常典型的 Optiver OA :不拼演算法花活,而是考你係統化建模能力 + 狀態一致性維護 + 對邊界條件的極致敏感度。題目本身不難,但如果沒有清晰的資料結構設計,很容易在中後段因為狀態錯亂直接崩。我這邊是全程陪學生走完這道題的完整實現過程,下面從題意 → 建模 → 關鍵坑點 → 解題框架幾個維度,完整覆盤。
面經概覽(Optiver OA)
- 公司 / 崗位:Optiver|Software Engineer / Trading Tech 相關崗位
- 考核形式:Online Assessment(程式設計 + 系統模擬)
- 題目數量:1 道綜合模擬題
- 題目型別:Simulation / 狀態機 / 規則驅動建模
- 語言支援:Python / Java / C++ 等主流語言
- 核心考點:
- 複雜業務規則的準確建模
- 多物件狀態的長期一致性維護
- 時間序列 + 連續狀態更新
- 邊界條件(閾值、時間、浮點精度)處理能力
- 難度評價:
- 演算法難度:中等偏低
- 邏輯複雜度:中等偏高
- 綜合壓力:偏高(極易因細節遺漏出錯)
- 典型淘汰點:
- 風速疊加公式理解錯誤
> 15與>= 15判斷寫反- 未正確維護 unstable → stable 的 300 秒連續安全時間
- Inspect 時狀態未同步更新
- 整體風格總結:
非 LeetCode 型刷題,更像真實系統中的規則引擎實現,Optiver 非常偏好這種「看似簡單、實則很容易寫錯」的題型。
Optiver OA 真題回顧

解題思路
這道題本質是一道時間驅動的系統模擬題,重點不在演算法複雜度,而在於能否在一系列操作中,持續、準確地維護多氣球的狀態一致性。只要模型搭對,後續實現其實是順推。
首先要明確系統中維護的兩類核心資訊:氣球狀態和環境狀態。
氣球狀態包括:所屬隊伍、是否在飛行、當前高度、是否穩定,以及與穩定性相關的時間資訊(例如從什麼時候開始處於安全風速)。環境狀態主要是不同高度的風速設定,以及全域性時間戳(題目保證時間嚴格遞增)。
建模時有一個重要原則:風速是全域性規則,氣球是被動物件。設定風速時只記錄風速層本身,不要立刻去更新所有氣球;只有在氣球發生操作或被檢查時,才根據當前時間和高度計算實時風速並更新穩定性,這樣邏輯更清晰,也更不容易出錯。
穩定性判斷是這道題的關鍵。氣球升空時預設穩定,但如果當前高度風速嚴格大於 15 m/s,需要立刻轉為不穩定;而不穩定氣球想恢復穩定,必須在風速安全(≤15 m/s)的高度連續停留至少 300 秒。因此不能只用一個 boolean 表示穩定性,必須額外記錄「安全時間的起點」,用於判斷是否滿足連續 300 秒這一條件。
具體操作上:
- Ascend:更新高度並設為飛行狀態,先預設穩定,再立即計算風速判斷是否需要轉為不穩定。
- Descend:這是一次完整重置操作,飛行狀態、高度、穩定性和時間資訊都需要清空。
- Wind:只更新風速資料結構,不觸碰氣球狀態。
- Inspect:在檢查前,先同步更新所有正在飛行氣球的穩定性狀態,然後找出非本隊中穩定氣球的最高高度,再返回本隊中高度不低於該值的穩定氣球。
整體來看,這道題真正考察的是:在規則複雜、狀態持續變化的系統中,是否能保持邏輯嚴謹且不遺漏邊界條件,非常符合 Optiver 一貫的出題風格。
備戰 Optiver OA ,不再踩雷!
如果你想少走彎路,我們的專屬陪跑服務能幫你精準避坑:
OA 代寫 + 真題包過:覆蓋 Optiver 高頻模擬題,適配 Python/Java/C++ 等主流語言,100% 精準命中業務規則與邊界條件,測試用例全透過,無痕操作更安全;
北美量化/交易技術專家全程助攻:OA 實現時實時梳理建模思路,面試時同步傳遞核心邏輯,比 AI 輔助更精準,幫你應對 Behavioral 的技術場景題、Coding 的狀態一致性維護、系統模擬題的時間序列處理;
SDE/Trading Tech 專項代面試:專業技術團隊深度熟悉 Optiver 考察風格,自然應對面試官關於邊界處理、狀態同步等細節追問,確保面試流程順暢;
全套包過服務:從 OA 建模到拿到 Offer 全程護航,預付定金,成功簽約後再付尾款,權益有保障。