← 返回部落格列表
HRT

HRT OA 2026 全攻略|Hudson River Trading 線上測評題型與高分策略

2026-05-10

一句話摘要:HRT OA 是 70 分鐘 4 題的 CodeSignal 測評,強調時間序列處理、階梯函數與高吞吐量資料結構,能寫乾淨 O(n log n) 解就能穩進面試。

HRT(Hudson River Trading,哈德遜河交易公司)是紐約高頻做市的頭部量化機構,其 OA 在所有量化 OA 裡屬於「題目工程化、考察實作」的典型——不像 Jane Street 重純數學,也不像 Optiver 重交易直覺,HRT 更看重你能不能用整潔的程式碼處理真實的市場資料流。

下面這篇文章按「題型 → 真題 → 解法 → 備考策略 → FAQ」的順序幫你完整準備 HRT OA。


一、HRT OA 基本資訊

項目 詳情
平台 CodeSignal
時長 70 分鐘
題量 4 題(難度遞增)
語言 Python / C++ / Java(推薦 Python)
題目 英文,結合金融場景但不需要金融知識
通過線 滿分 600,建議 ≥ 500
邀請來源 校招 + Referral,部分透過 LinkedIn Sourcer

和其他量化 OA 的差別:HRT 不出機率題、不出腦筋急轉彎,全部是 LeetCode 風格的中等偏難演算法題。所以「刷題派」反而占便宜。


二、HRT OA 題型分布與高頻考點

根據近 12 個月的真題回饋,HRT OA 大致按以下結構出題:

題號 難度 高頻考點 推薦用時
Q1 Easy 模擬 / 字串 / 簡單陣列 5-10 分鐘
Q2 Medium 雜湊表 + 滑動視窗 10-15 分鐘
Q3 Medium-Hard 階梯函數 / 區間合併 / 差分陣列 20-25 分鐘
Q4 Hard 時間序列 + 堆 / 二分 / 線段樹 25-30 分鐘

最容易丟分的是 Q3——很多同學只會寫 O(n²) 的暴力解,導致大用例 TLE。


三、真題示例與解法

題型一:階梯函數(Step Function)求最大值

題目:給一組形如 [(start, end, value)] 的事件,每個事件在 [start, end) 時間內貢獻 value 單位負載,求任意時刻的最大瞬時負載

暴力解 O(n × m):掃每個時刻,逾時

def maxLoadBrute(events):
    timeline = [0] * 1_000_001
    for s, e, v in events:
        for t in range(s, e):
            timeline[t] += v
    return max(timeline)

最優解 O(n log n):差分陣列 + 排序事件點

def maxLoad(events):
    points = []
    for s, e, v in events:
        points.append((s, v))      # 進入
        points.append((e, -v))     # 離開
    points.sort()

    cur = best = 0
    for _, delta in points:
        cur += delta
        best = max(best, cur)
    return best

關鍵技巧:把「區間」轉換為「事件流」,掃描一遍即可。HRT 非常喜歡這種事件流抽象。


題型二:時間序列視窗聚合

題目:給一系列 tick (timestamp, price),對每個 tick 輸出過去 5 秒內的最大價格

最優解 O(n):單調佇列

from collections import deque

def slidingMaxPrice(ticks, window=5):
    dq = deque()
    res = []
    for t, p in ticks:
        while dq and dq[0][0] < t - window:
            dq.popleft()
        while dq and dq[-1][1] <= p:
            dq.pop()
        dq.append((t, p))
        res.append(dq[0][1])
    return res

複雜度:每個元素入隊出隊各一次 → O(n)。HRT 的高頻考點之一是把 LeetCode 239 改成時間戳記版本。


題型三:訂單匹配(貪婪 + 優先佇列)

題目:買單與賣單陸續到達,價格相同時按時間優先成交。求總成交量。

import heapq

def matchOrders(orders):
    bids, asks = [], []
    volume = 0
    for side, price, qty, t in orders:
        if side == 'B':
            while qty and asks and asks[0][0] <= price:
                ap, at, aq = heapq.heappop(asks)
                m = min(qty, aq)
                volume += m
                qty -= m
                if aq > m:
                    heapq.heappush(asks, (ap, at, aq - m))
            if qty:
                heapq.heappush(bids, (-price, t, qty))
        else:
            while qty and bids and -bids[0][0] >= price:
                bp, bt, bq = heapq.heappop(bids)
                m = min(qty, bq)
                volume += m
                qty -= m
                if bq > m:
                    heapq.heappush(bids, (bp, bt, bq - m))
            if qty:
                heapq.heappush(asks, (price, t, qty))
    return volume

易錯點:剩餘數量要重新入堆;價格優先 + 時間優先的比較順序不能反。


四、備考策略:從入門到 500+

階段 週期 重點
基礎 1-2 週 LeetCode 陣列/雜湊/雙指針 60 題
強化 1-2 週 滑動視窗、單調堆疊/佇列、堆 30 題
模擬 1 週 CodeSignal Industry Coding 框架 4 套
衝刺 3-5 天 HRT 風格階梯函數與訂單簿 10 題

強烈建議:用 CodeSignal 自帶的官方 General Coding Framework 模擬,不要只刷 LeetCode 原題,因為 CodeSignal 的 IDE 沒有 LeetCode 的輸入解析便利。


五、FAQ:HRT OA 高頻問題答疑

Q1:HRT OA 多少分能進 VO?

通常 500/600 是面試線,部分組(尤其是 SDE 與 Algo Dev)會要求 560+。Quant Researcher 路徑需要滿分附加題。

Q2:HRT OA 可以用 Python 嗎?效能夠嗎?

完全可以。HRT 測試用例規模一般 n ≤ 10⁵,O(n log n) 的 Python 解通常在 1-2 秒內完成。但 Q4 時間緊時建議預先寫好 input = sys.stdin.buffer.read().split() 加速讀入。

Q3:HRT OA 做完是不是就直接 VO?

不一定。HRT 會綜合 OA 分數 + 履歷篩選。OA 高分但履歷薄弱仍可能被拒;反之,履歷強勢(頂校 ICPC、知名實習)即使 OA 在線也可能被 fast track。

Q4:HRT OA 題目會重複嗎?

。題庫較大但循環出題,2024-2026 年間多次出現「事件流最大並行」「帶 cooldown 的訂單匹配」等改編版本。建議刷過往真題。

Q5:HRT OA 失敗後多久能重考?

官方 Cooldown 通常為 6 個月。期間投遞會被自動拒。


六、HRT VO 後續:你需要知道什麼

通過 OA 之後會進入 2-4 輪 VO,包括:

  1. Coding 輪:1-2 道 LeetCode Hard,注重最優複雜度與程式碼風格
  2. System Design 輪(僅 senior):高頻交易系統、訂單簿、訊息匯流排
  3. Behavioral / Culture Fit:HRT 強調研究氛圍與協作文化
  4. Onsite Lunch / Coffee Chat:非淘汰,但用於綜合評估

七、外部連結與延伸閱讀


🚀 需要 HRT OA / VO 輔助?

如果你正在準備 HRT 或類似量化公司(Citadel、Jane Street、Optiver、SIG)的 OA / VO,歡迎交流:可提供題型拆解、變體練習建議和 VO 階段的即時輔助。

👉 立即加微信:Coding0201取得真題與一對一備考方案


聯絡方式