← 返回部落格列表 Bloomberg 2026 NG SDE 校招兩輪面經|Valid Triangle + Flatten Multi-level Linked List 全程拆解
Bloomberg

Bloomberg 2026 NG SDE 校招兩輪面經|Valid Triangle + Flatten Multi-level Linked List 全程拆解

2026-05-14

Bloomberg 在 2026 校招中的節奏是所有傳統 IB / 金融 Tech 裡最快的:9 月 23 日投遞,當天就收到 HR 面試邀約,9 月 30 日校招組確認,10 月 2-3 日兩天連面——onsite 兩輪技術 + 行為,整套流程一週內走完。題目都是 LeetCode Medium 量級,但面試官的追問極度細節:smart pointer 怎麼用、scoped vs unique 差別在哪、recurse 還是 stack 哪個更省記憶體。本文複盤一位 2026 鮮活通過候選人的兩輪 onsite,每個環節都給出題目、考察點、答題模板。

Bloomberg 2026 NG SDE 校招時間線

日期 階段
9.23 透過學校 career portal 投遞履歷
9.23 HR 當日發邀約(含校招 onsite 日期選項)
9.30 校招組確認面試時間
10.2 第一輪 onsite(技術 + BQ)
10.3 第二輪 onsite(resume deep dive + 技術追問)
10.10 內 offer call

第一輪 onsite:BQ + Coding 雙題

1.1 行為題模板(25 分鐘)

第一輪面試官是華人 senior engineer,氣氛非常放鬆。BQ 部分按以下順序:

  1. Self-introduction(3 分鐘):教育背景 + 一個最自豪的專案
  2. 最有代表性的專案經歷:選與 Bloomberg 業務最相關的——金融、終端、即時資料
  3. 最具挑戰性的專案:重點講模糊需求 + 溝通過程——Bloomberg 極度看重 ambiguous requirements 的處理
  4. 追問
    • "你怎麼跟團隊 align 需求?"
    • "最終結果是否符合預期?"
    • "如果再來一次你會怎麼改進?"

BQ 答題密碼:Bloomberg 的 BQ 評分傾向「溝通顆粒度」——把每個抉擇背後的選項 + 取捨講清楚。建議每個 STAR 故事內建至少 1 個「trade-off」動作。

1.2 Coding 題 1:Valid Triangle Number(LeetCode 611)

題目:給定整數陣列 nums,返回可以構成有效三角形的三元組數量(任意兩邊和大於第三邊)。

Bloomberg 期望解法:排序 + 雙指針 O(n²)

from typing import List

def triangle_number(nums: List[int]) -> int:
    nums.sort()
    n = len(nums)
    count = 0
    for k in range(n - 1, 1, -1):
        i, j = 0, k - 1
        while i < j:
            if nums[i] + nums[j] > nums[k]:
                count += j - i
                j -= 1
            else:
                i += 1
    return count

時間複雜度:O(n²)
空間複雜度:O(1)(如果允許原地排序)

面試官追問

1.3 Coding 題 2:Flatten a Multi-level Linked List(LeetCode 430)

題目:雙向連結串列節點有 nextchild 指針,將其展開為單層連結串列。

Bloomberg 期望解法:堆疊模擬 / 遞迴 DFS

class Node:
    def __init__(self, val, prev=None, next=None, child=None):
        self.val = val
        self.prev = prev
        self.next = next
        self.child = child

def flatten(head):
    if not head:
        return head
    stack = []
    curr = head
    while curr:
        if curr.child:
            if curr.next:
                stack.append(curr.next)
            curr.next = curr.child
            curr.child.prev = curr
            curr.child = None
        if not curr.next and stack:
            nxt = stack.pop()
            curr.next = nxt
            nxt.prev = curr
        curr = curr.next
    return head

時間複雜度:O(n),n 為所有節點總數
空間複雜度:O(d),d 為最大嵌套層數

面試官追問

第二輪 onsite:Resume Deep Dive + 技術追問

第二輪有兩位面試官:一位印度口音 ABC、一位美國本土 engineer。風格更「resume 導向」:

2.1 Resume 專案複盤(30 分鐘)

典型開場

"If you were to redo your most recent project, how would you improve it?"

評分點

Bloomberg 這一輪最常追問的技術細節

  1. C++ smart pointer:"你提到 unique_ptr,那 shared_ptr 何時用?scoped_ptr 跟 unique_ptr 的差別?"
  2. 並發:"如果你這個服務要支撐 100k QPS,你會怎麼改?"
  3. 測試:"你的 test 覆蓋率多少?mock 了哪些依賴?"

2.2 Coding 題:LRU Cache 設計

題目:實現 LRU Cache,getput 都 O(1)。

Bloomberg 期望解法:雙向連結串列 + Hash Map

class DLLNode:
    __slots__ = ("key", "val", "prev", "next")
    def __init__(self, key=0, val=0):
        self.key = key
        self.val = val
        self.prev = None
        self.next = None

class LRUCache:
    def __init__(self, capacity: int):
        self.cap = capacity
        self.cache: dict = {}
        self.head = DLLNode()
        self.tail = DLLNode()
        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_to_front(self, node):
        node.prev = self.head
        node.next = self.head.next
        self.head.next.prev = node
        self.head.next = node

    def get(self, key):
        if key not in self.cache:
            return -1
        node = self.cache[key]
        self._remove(node)
        self._add_to_front(node)
        return node.val

    def put(self, key, val):
        if key in self.cache:
            self._remove(self.cache[key])
        node = DLLNode(key, val)
        self.cache[key] = node
        self._add_to_front(node)
        if len(self.cache) > self.cap:
            lru = self.tail.prev
            self._remove(lru)
            del self.cache[lru.key]

Bloomberg 這道題的追問深度

Bloomberg 校招的 5 個評分維度

維度 佔比 典型表現
Coding 正確性 30% Medium 一次 AC + 邊界處理
溝通清晰度 25% 出題前先 clarify 輸入輸出 + 邊界
技術深度 20% smart pointer、concurrency 都能展開
BQ + 文化契合 15% ambiguous requirement 處理 + 團隊協作
學習速度 10% 追問新知識時能現場推理

Bloomberg vs Citadel / JPMorgan 校招對比

維度 Bloomberg Citadel JPMorgan
Onsite 輪數 2 3-4 3
OA 是否必經 否(部分免 OA)
演算法難度 LeetCode Medium LeetCode Medium-Hard LeetCode Medium
BQ 佔比 30% 10% 50%
平均時間線 OA 到 offer 2-3 週 3-5 週 4-8 週

FAQ

Bloomberg NG SDE 校招通過率高嗎?

校招通過率約 12-18%(投遞 → offer)。進入 onsite 後約 30-40% 拿 offer,所以 onsite 表現是分水嶺。本案例兩輪 onsite 間隔 1 天,節奏非常緊湊,強調「快速 context switch」能力。

Bloomberg 演算法考點重不重?

中等。LeetCode Medium 節奏 + 60% Bloomberg 高頻題已經夠用。重點關注:linked list 變體、雙指針、tree 遍歷、LRU 設計。Bloomberg 出題非常「教科書風格」,幾乎不出 trick 題。

Onsite 間隔只有 1 天能拒絕嗎?

可以與 HR 協商。但 Bloomberg 校招組的快節奏文化決定了早面早 offer,如果時間允許建議接受連面。

Bloomberg BQ 怎麼準備?

重點準備 5 個 STAR 故事,覆蓋:模糊需求 + 團隊協作 + 失敗複盤 + 領導力 + 跨文化溝通。Bloomberg 比較在意細節追問,每個故事要有至少 3 個 follow-up 答案備好。

Bloomberg 內推有用嗎?

非常有用。Bloomberg HR 對內推履歷的回應率約 2x,且校招會優先 schedule 內推候選人。如果有 Bloomberg 在職員工內推,HR 1-2 個工作日內必回。


正在準備 Bloomberg NG SDE 校招?

oavoservice 提供 Bloomberg / Citadel / JPMorgan 等金融科技公司的 onsite 全流程輔助:BQ 故事打磨、coding 一對一 mock、resume deep dive 模擬問答。我們的導師包括前 Bloomberg engineer,對 Bloomberg 的「細節追問」風格有完整應對手冊。

立即加入微信:Coding0201獲取 Bloomberg 校招輔導

#Bloomberg #BloombergVO #NewGrad #SDE #金融校招 #面經


聯絡方式

Email: [email protected]
Telegram: @OAVOProxy