← 返回部落格列表 Bloomberg VO 2026 真題復盤|演算法、系統設計、行為面三輪通關手冊
Bloomberg

Bloomberg VO 2026 真題復盤|演算法、系統設計、行為面三輪通關手冊

2026-05-11

背景:本文整理自 2026 年 1–4 月透過 oavoservice 學員管道取得的 BBG VO 回饋共 18 份,涵蓋 SDE I/II、Quant Dev、Infra/SRE 三類職位。一畝三分地上的 Bloomberg 面經普遍資訊斷裂,本文按「輪次 → 題型 → 應對範本」重新結構化。


一、Bloomberg 面試整體流程

HR Screen (30min)
    │
    ▼
Coding Round 1 (60min, 1–2 題 LC Med)
    │
    ▼
Team Match (HM Chat, 30min)
    │
    ▼
Onsite/Final (3 輪)
    ├── Algorithm + Data Structure (60min)
    ├── System Design / Project Deep Dive (60min)
    └── Behavioral + Manager Round (45min)

時長:從 HR screen 到 offer 通常 3–6 週;BBG 的 team match 是雙向選擇,不通過會直接 reject。


二、第一輪:演算法與資料結構(60 min)

2.1 高頻題型分佈(2026 Q1)

題型 出現頻率 典型代表
LinkedList / 設計類 ~30% LRU、LFU、雙向鏈表 + HashMap
Heap / 排程 ~20% Top K、Meeting Rooms II、CPU 排程
Tree / Trie ~20% 序列化反序列化、Word Search II
字串 ~15% 滑窗、最長無重複、整數轉 Roman
圖 / DP ~15% Word Ladder、買賣股票、島嶼數量

2.2 真題 #1:自訂 LRU + TTL

題目(變體):實作支援 TTL(time-to-live)的 LRU 快取。get(key, now_ts) 若 key 已過期則視為不存在;put(key, value, now_ts, ttl) 更新或新增。

關鍵設計

  1. HashMap 節點 → 雙向鏈表節點;
  2. 節點儲存 (key, value, expire_ts)
  3. get 時檢查 expire,過期則刪除並回傳 -1;
  4. 不要在每次 op 都掃整張表,惰性清理即可。
class Node:
    __slots__ = ('key', 'val', 'exp', 'prev', 'next')
    def __init__(self, k=0, v=0, e=0):
        self.key, self.val, self.exp = k, v, e
        self.prev = self.next = None

class LRUTTL:
    def __init__(self, cap):
        self.cap = cap
        self.map = {}
        self.head = Node()
        self.tail = Node()
        self.head.next = self.tail
        self.tail.prev = self.head

    def _remove(self, node):
        node.prev.next = node.next
        node.next.prev = node.prev

    def _add_front(self, node):
        node.next = self.head.next
        node.prev = self.head
        self.head.next.prev = node
        self.head.next = node

    def get(self, key, now):
        if key not in self.map:
            return -1
        node = self.map[key]
        if node.exp <= now:
            self._remove(node)
            del self.map[key]
            return -1
        self._remove(node)
        self._add_front(node)
        return node.val

    def put(self, key, val, now, ttl):
        if key in self.map:
            node = self.map[key]
            node.val = val
            node.exp = now + ttl
            self._remove(node)
            self._add_front(node)
            return
        if len(self.map) >= self.cap:
            lru = self.tail.prev
            self._remove(lru)
            del self.map[lru.key]
        node = Node(key, val, now + ttl)
        self._add_front(node)
        self.map[key] = node

複雜度get/put 均攤 O(1)。

Bloomberg 面試官常追問

2.3 真題 #2:股票資料流的滑動中位數

題目(變體):BBG 終端持續推送股票價格 add(price),隨時查詢最近 k 筆的中位數 median()

核心思路:雙堆(max-heap + min-heap)+ 長度為 k 的佇列,超過 k 時延遲刪除(lazy deletion)。

import heapq
from collections import deque, defaultdict

class RollingMedian:
    def __init__(self, k):
        self.k = k
        self.lo = []
        self.hi = []
        self.q = deque()
        self.removed = defaultdict(int)
        self.size_lo = 0
        self.size_hi = 0

    def _prune(self, heap):
        while heap and self.removed[heap[0] if heap is self.hi else -heap[0]] > 0:
            v = heap[0] if heap is self.hi else -heap[0]
            self.removed[v] -= 1
            heapq.heappop(heap)

    def add(self, price):
        if not self.lo or price <= -self.lo[0]:
            heapq.heappush(self.lo, -price)
            self.size_lo += 1
        else:
            heapq.heappush(self.hi, price)
            self.size_hi += 1
        self.q.append(price)
        if len(self.q) > self.k:
            old = self.q.popleft()
            self.removed[old] += 1
            if old <= -self.lo[0]:
                self.size_lo -= 1
            else:
                self.size_hi -= 1
        self._rebalance()

    def _rebalance(self):
        while self.size_lo > self.size_hi + 1:
            v = -heapq.heappop(self.lo)
            heapq.heappush(self.hi, v)
            self.size_lo -= 1
            self.size_hi += 1
            self._prune(self.lo)
        while self.size_lo < self.size_hi:
            v = heapq.heappop(self.hi)
            heapq.heappush(self.lo, -v)
            self.size_hi -= 1
            self.size_lo += 1
            self._prune(self.hi)
        self._prune(self.lo)
        self._prune(self.hi)

    def median(self):
        n = self.size_lo + self.size_hi
        if n == 0:
            return None
        if n % 2:
            return -self.lo[0]
        return (-self.lo[0] + self.hi[0]) / 2

複雜度:add/median 均攤 O(log k)。


三、第二輪:系統設計 / 專案深挖(60 min)

3.1 BBG 高頻系統設計題

3.2 BBG 風格 4 步法

  1. 釐清功能 vs 非功能需求(QPS、延遲、資料規模);
  2. 從 single-box 起步,再說水平擴展;
  3. 明確 CAP 取捨——Bloomberg 偏 latency over consistency;
  4. 閉環講監控、降級、灰度——這是 BBG 加分項。

3.3 專案深挖 (Resume Deep Dive)

面試官會盯住簡歷某一行 30 分鐘,常見追問:

建議:簡歷每個專案準備 3 段 STAR + 1 段技術取捨 + 1 段失敗教訓。


四、第三輪:行為面 + Manager Round(45 min)

4.1 BBG 文化關鍵字

4.2 高頻行為問題

  1. Tell me about a time you disagreed with a teammate.
  2. Describe a project that didn't go as planned.
  3. Why Bloomberg?(必問,不要把 BBG 說成 "another bank")
  4. What's a feature you'd add to the Bloomberg Terminal?

4.3 STAR 範本

注意:BBG 比其他銀行類公司更看重好奇心——主動追問 terminal 功能、主動提技術替代方案,比「我做過 xxx」更加分。


五、整體備考時間表

週次 重點
Week 1 LC Bloomberg tag Top 100(先 Easy/Med)
Week 2 設計類專題:LRU / LFU / Hit Counter / Tweet
Week 3 系統設計 5 套:行情推送、Top-K、限流、CDC、訊息匯流排
Week 4 行為面 + Mock VO 3 場

六、常見問題 FAQ

Q1:Bloomberg VO 一共幾輪?

A:通常 1 輪 phone + 3 輪 onsite/final,整體 4–5 輪,其中 onsite 1 天內完成。

Q2:Bloomberg 用 LeetCode 還是 HackerRank?

A:第一輪 coding 多用 CoderPad / HackerRank CodePair,onsite 多在白板或 Google Doc 寫程式。

Q3:Bloomberg 系統設計要畫圖嗎?

A:要。建議用 Excalidraw 提前練 5 張圖(推送、限流、訂閱、訊息匯流排、快取)。

Q4:Bloomberg 給 SDE I 的題難嗎?

A:LC Medium 為主,少量 Hard。BBG 不強調難題,但講清 trade-off 比寫對程式更重要

Q5:Bloomberg 掛了能再投嗎?

A:可以,但建議等 6–12 個月,並最好換一個組(BBG 不同 team 招聘節奏差異較大)。

Q6:Bloomberg 給 H1B sponsor 嗎?

A:給。BBG NYC 總部對國際員工友善,2026 春招繼續 sponsor H1B。

Q7:BBG 面試可以全程 remote 嗎?

A:phone + virtual onsite 都支援 remote;少數職位(trading floor)要求 onsite 現場。

Q8:Bloomberg vs Two Sigma / Citadel 哪個更難?

A:演算法難度上 BBG 略低於 Citadel / TS,但 BBG 的專案深挖遠比量化所深,對 SDE 的工程素養要求更高。


七、臨場 Checklist


八、需要 Bloomberg VO 輔助?

我們提供 BBG 面試一對一輔助:

服務內容:


最後更新:2026-05-11 | 作者:oavoservice 面試組