Citadel / Citadel Securities 2026 SDE Intern OA 仍然是量化方向最"难定级"的一道关:题目本身在 LeetCode Medium 水平,但评分非常依赖 edge case 覆盖率与代码效率,社区通过率长期不到 25%。本文按"平台 → 三类高频题 → 高分节奏 → 踩雷"的顺序,给出 2026 春招最新真题盘点。
OA 平台与节奏
| 维度 | 详情 |
|---|---|
| 平台 | HackerRank |
| 题量 | 3–4 道 Coding |
| 时长 | 70 min(少量 stream 70 + 简答 30) |
| 难度 | LC Medium → Medium-Hard |
| 语言 | Python / C++ / Java |
| 评分 | 测试用例分档 + 隐藏 corner case |
Citadel OA 的 HackerRank 用的是自动评测 + 隐藏测试集,常见情况是 sample case 全过但 score 只有 60,那是因为某个隐藏 test 触发了你的 edge bug。
三大高频题型(2026 春招)
题型一:Order Book / Trading Simulation
给定一个 order stream(包含 BUY / SELL / CANCEL),模拟撮合,输出每笔成交价 + 最终持仓。
要点:
- 维护两个 heap:
buy_heap(max-heap)+sell_heap(min-heap) - 每次新 order 进来,先看对手簿能否成交
- CANCEL 需要支持 lazy delete(标记 + 跳过)
import heapq
from collections import defaultdict
def match_orders(orders):
buy = [] # max-heap stored as -price
sell = [] # min-heap
cancelled = set()
trades = []
for op, oid, side, price, qty in orders:
if op == "CANCEL":
cancelled.add(oid)
continue
if side == "BUY":
while qty and sell:
while sell and sell[0][2] in cancelled:
heapq.heappop(sell)
if not sell or sell[0][0] > price:
break
sp, sq, sid = heapq.heappop(sell)
m = min(qty, sq)
trades.append((oid, sid, sp, m))
qty -= m
if sq - m > 0:
heapq.heappush(sell, (sp, sq - m, sid))
if qty:
heapq.heappush(buy, (-price, qty, oid))
else: # SELL 对称
while qty and buy:
while buy and buy[0][2] in cancelled:
heapq.heappop(buy)
if not buy or -buy[0][0] < price:
break
bp, bq, bid = heapq.heappop(buy)
m = min(qty, bq)
trades.append((bid, oid, -bp, m))
qty -= m
if bq - m > 0:
heapq.heappush(buy, (bp, bq - m, bid))
if qty:
heapq.heappush(sell, (price, qty, oid))
return trades
时间复杂度:O(n log n),空间复杂度:O(n)
题型二:Greedy Simulation / Resource Allocation
给定一组任务(start, duration, priority),m 个 worker,输出每个 worker 完成的任务总数。
要点:
- 用 min-heap 维护 worker 的下一次空闲时间
- 每次任务到来时 pop 出最早空闲的 worker
- 注意优先级在多个 worker 同时空闲时的 tie-break
import heapq
def allocate_tasks(tasks, m):
tasks.sort(key=lambda t: (t[0], -t[2])) # start time, then high priority
workers = [(0, i) for i in range(m)]
heapq.heapify(workers)
count = [0] * m
for start, dur, _ in tasks:
free_at, wid = heapq.heappop(workers)
actual = max(free_at, start)
heapq.heappush(workers, (actual + dur, wid))
count[wid] += 1
return count
时间复杂度:O((n + m) log m)
题型三:Bit Manipulation / Number Theory
给定整数数组 a,求所有子数组 XOR 之和 mod 1e9+7。
要点:
- 暴力 O(n²) 必 TLE
- 按 bit 拆解:每个 bit 独立计算贡献
- 子数组 XOR 用前缀异或
MOD = 10**9 + 7
def sum_subarray_xor(a):
n = len(a)
ans = 0
for b in range(30):
ones = 0
zeros = 1 # prefix XOR = 0 at position -1
pref = 0
contrib = 0
for x in a:
pref ^= (x >> b) & 1
if pref == 1:
contrib += zeros
ones += 1
else:
contrib += ones
zeros += 1
ans = (ans + contrib * (1 << b)) % MOD
return ans
时间复杂度:O(n · 30)
70 分钟节奏分配建议
0–5 分钟 通读 3 道题 + 排序难度
5–25 分钟 最简单一道全 AC
25–55 分钟 攻最有把握的一道(含 edge case 覆盖)
55–65 分钟 尝试第三道 + 至少跑通样例
65–70 分钟 回看所有提交,确认无 syntax error
关键:Citadel 不要求全 AC,两题完整高于三题半成品。
常见踩雷
- 不读完所有题目就开始写(错过最容易题)
- 用
int默认 64-bit 而忽略溢出(C++ 提交常见) - 隐藏 case 触发:空输入、单元素、全相等、全相反
- 没考虑 stable 顺序:题目要求"保留输入顺序"但代码用了 sort
- 最后 5 分钟还在改代码导致 syntax error 提交失败
Citadel 和 Citadel Securities OA 一样吗?
两家公司 OA 完全不同:
| 维度 | Citadel(HF) | Citadel Securities(市商) |
|---|---|---|
| 题目方向 | SDE 通用算法 | 量化 / 低延迟 / Bit ops |
| 时长 | 70 min | 90 min |
| 数学题占比 | 低 | 高(概率 / 期望) |
| 平台 | HackerRank | HackerRank |
申请 Citadel Securities 的同学额外要复习概率期望题。
我们见过的高分案例
oavoservice 学员中 Citadel OA 拿到 100 分的,普遍特征是:两道题全 AC + 第三道至少跑通 sample。我们 OA辅助 流程会先做能力评估,再针对薄弱题型补强。
具体方案与报价,加微信 Coding0201 沟通。
FAQ
Citadel OA 通过率多少?
社区反馈通过线约 70–80 分(满分 100)。Top 候选人能拿到 90+ 进 phone screen。
Citadel OA 可以用 ChatGPT 吗?
不可以。HackerRank 有 webcam + tab tracking 监考,疑似作弊会直接 reject。
Python 提交会 TLE 吗?
部分题目(特别是 Order Book)Python 偏紧。建议 C++ 或者 PyPy。Citadel HackerRank 支持 PyPy。
OA 之后流程是什么?
OA pass → HR phone → Tech phone(1–2 轮)→ Superday(3–5 轮 onsite)。Superday 通过率约 25%。
正在准备 Citadel / Jane Street / Two Sigma / HRT / IMC 等量化方向 OA?
oavoservice 长期追踪量化与 HFT 公司的 OA + VO 真题。mentor 来自一线 quant / SDE 团队,可提供题型分类训练、Order Book / 概率题专项、HackerRank 时间节奏 mock等 OA辅助 服务。
👉 立即添加微信:Coding0201,获取 Citadel OA 完整备考方案。
联系方式
Email: [email protected]
Telegram: @OAVOProxy