← 返回博客列表 Optiver SWE OA 一亩三分地真题速览|Order Book + Allocation 全题型 OA辅助 2026
Optiver

Optiver SWE OA 一亩三分地真题速览|Order Book + Allocation 全题型 OA辅助 2026

2026-05-23

Optiver 阿姆斯特丹 / 芝加哥 / 悉尼三地的 SWE 岗位在 2026 春招继续开放,OA 仍由 HackerRank / 自研平台二选一发放。我们结合一亩三分地最近 90 天发帖整理:题型基本固定在 Order Book 撮合、Trading Sequences 数列模拟、Allocation 分配 三条主线,每条都对应一道核心算法 + 一段业务封装。下面按真题密度排序拆解,并补充 OA辅助 的具体接入方式。

Optiver SWE OA 概览

维度 详情
平台 HackerRank / 自研在线 IDE
时长 70–90 分钟
题量 2–3 道(含 1 道偏 simulation)
难度 LC Medium 为主,1 道带 Hard 收尾
评分 全自动判题 + 隐藏 corner case
反馈 一亩三分地 2026 帖子约 65% 反馈三题全过即进下一轮

题型一:Order Book 撮合

题目描述

实现一个最小可行的 Limit Order Book,支持 add(side, price, qty)match() 两个操作。每次调用 match() 撮合所有可成交对,返回成交序列 [(buy_id, sell_id, price, qty), ...]

Python 解法

import heapq
from collections import defaultdict

class OrderBook:
    def __init__(self):
        self.buys = []        # max-heap: (-price, ts, oid, qty)
        self.sells = []       # min-heap
        self.qty = defaultdict(int)
        self.ts = 0

    def add(self, side, price, qty, oid):
        self.ts += 1
        self.qty[oid] = qty
        if side == 'B':
            heapq.heappush(self.buys, (-price, self.ts, oid))
        else:
            heapq.heappush(self.sells, (price, self.ts, oid))

    def match(self):
        fills = []
        while self.buys and self.sells and -self.buys[0][0] >= self.sells[0][0]:
            bp, _, bid = self.buys[0]
            sp, _, sid = self.sells[0]
            q = min(self.qty[bid], self.qty[sid])
            fills.append((bid, sid, sp, q))
            self.qty[bid] -= q
            self.qty[sid] -= q
            if self.qty[bid] == 0:
                heapq.heappop(self.buys)
            if self.qty[sid] == 0:
                heapq.heappop(self.sells)
        return fills

时间复杂度:每次 match 平均 O(k log n),k 为本轮成交单数。

题型二:Trading Sequences

题目描述

给定每秒成交价数组 prices[],找出最长非递减子段且子段平均价 ≥ 全局均价。

Python 解法

def longest_strong_run(prices):
    if not prices:
        return 0
    avg = sum(prices) / len(prices)
    best = cur_len = 0
    cur_sum = 0
    start = 0
    for i, p in enumerate(prices):
        if i > 0 and prices[i] < prices[i - 1]:
            start = i
            cur_sum = 0
        cur_sum += p
        cur_len = i - start + 1
        if cur_sum / cur_len >= avg and cur_len > best:
            best = cur_len
    return best

时间复杂度:O(n)。这道题在一亩三分地反复出现,注意 >= 而非 >

题型三:Allocation

题目描述

n 个客户对一篮子标的下达申购量 demand[i],可用总量 S < sum(demand)。按「比例 + 整手取整 + 余量按时间戳分配」规则给每个客户分配最终成交量。

Python 解法

def pro_rata_allocate(demands, ts, S, lot=1):
    n = len(demands)
    total = sum(demands)
    base = [(d * S) // total // lot * lot for d in demands]
    used = sum(base)
    leftover = S - used
    order = sorted(range(n), key=lambda i: ts[i])
    i = 0
    while leftover >= lot and i < n:
        idx = order[i]
        if base[idx] < demands[idx]:
            base[idx] += lot
            leftover -= lot
        i = (i + 1) % n if leftover >= lot else i + 1
    return base

时间复杂度:O(n log n),瓶颈在排序。

一亩三分地高频题速查

题型 90 天频率 核心模板
Order Book 撮合 ★★★★★ 双堆 + 数量字典
Trading Sequences ★★★★ 单调段 + 均价滑动
Pro-rata Allocation ★★★★ 取整 + 余量轮询
价差最大化 ★★★ 单调栈 / 双指针
字符串行情解析 ★★ 正则 + 状态机

OA辅助 实战路径

oavoservice 的 OA辅助 服务

针对 Optiver SWE OA 这种「全自动判题 + 隐藏 corner case」的特点,oavoservice 的 OA辅助 提供:

具体方案与报价,加微信 Coding0201 沟通。

从盲刷到顺利通过 Optiver OA

这次很高兴能帮助这批同学顺利通过 Optiver SWE OA。我们发现很多同学准备 OA 时,光靠自己刷一亩三分地的帖子效率其实不高——一是题面会换,二是 Optiver 特别看 corner case 边界,单靠 LC Medium 刷题量很难覆盖。

如果你也在准备 Optiver、Citadel、Jane Street、IMC 这类量化 SWE 的 HackerRank / 自研平台 OA,感觉一个人复习方向模糊、节奏不稳,欢迎联系 oavoservice。我们会根据你的具体水平和弱点,提供专业的 OA 实战辅助服务和一对一指导,把题型分桶、限时模拟、当天思路核对全部打通。


FAQ

Optiver SWE OA 难度和 LeetCode 比是什么水平?

主体 LC Medium,但每场至少有一道带 Hard 级 corner case 收尾的 simulation 题,需要你在 70–90 分钟内同时处理算法 + 业务规则。

Optiver 哪几个城市的 OA 题库一致?

阿姆斯特丹、芝加哥、悉尼三地题库 80% 共享,少量本地化变体。一亩三分地反馈过最近批次三地 Order Book 题完全相同。

自研平台和 HackerRank 平台有什么区别?

自研平台允许你自己写测试用例,但隐藏 case 更严;HackerRank 给出 sample case 但不允许自定义运行环境。建议两套都练。

OA 没过冷却期多久?

通常 6 个月,跨地区办公室单独计数。换岗位(如 SWE → Trading)一般另算池子,可以更早再投。


正在准备 Optiver SWE OA / VO?

oavoservice 长期追踪 Optiver / Citadel / Jane Street / IMC 等量化机构的 OA + VO 真题。我们的 mentor 来自一线做市 / 自营团队,可以提供 题型分桶、限时模拟、自研平台实时辅助、行为面剧本 等 OA辅助 服务。

👉 立即添加微信:Coding0201获取 Optiver 高频题与 OA辅助 方案


联系方式

Email: [email protected]
Telegram: @OAVOProxy