← 返回部落格列表 Bloomberg 實習面試第一輪:口頭推理主導的通關打法
Bloomberg

Bloomberg 實習面試第一輪:口頭推理主導的通關打法

2026-07-16

Bloomberg 的軟體實習面試第一輪以「邊講邊寫」著稱:真正被評分的不是你能否跑通程式碼,而是你能否把思路講清楚、拆解乾淨、和面試官同步節奏。這一輪 60 分鐘,切成三段——先聊專案,再做兩道 HackerRank 演算法題,最後留幾分鐘反問。本文按真實面經複盤整輪流程,給出兩道代表題的完整 Python 解法與複雜度分析,並補充 VO輔助 / VO代面 的實戰準備路徑。

第一輪流程概覽

項目 內容
平台 HackerRank(無需共享螢幕)
總時長 約 60 分鐘
段落 自我介紹 + 專案問答(約 10 min)→ 兩道演算法(約 45 min)→ 反問(幾分鐘)
每題時長 約 20 分鐘 / 題
難度 中低(LC Easy-Medium 區間)
核心考點 口頭推理、問題拆解、複雜度分析、溝通表達
是否要求執行程式碼 否——先講清思路,再寫程式碼

第一段:自我介紹 + 專案問答(約 10 分鐘)

開場面試官會讓你挑一個「最有意思的專案」展開講。問題偏模板化,不會往技術細節深挖,通常圍繞這幾條:

這一段基本不會「刷人」,目標是讓面試官快速建立對你的印象。建議提前把一個專案打磨成 2 分鐘的口述版本:一句話背景 → 你的角色 → 一個具體技術難點 → 結果與反思,避免流水帳。

第二段:兩道 HackerRank 演算法題(約 45 分鐘)

這是決定成敗的核心段落。兩題都在 HackerRank 上完成,無需共享螢幕,每題約 20 分鐘。答題節奏是這一輪的關鍵:

  1. 先複述題意,確認邊界與輸入範圍;
  2. 口頭講清思路,等面試官點頭認可;
  3. 再動手寫程式碼;
  4. 寫完主動報出時間與空間複雜度
  5. 面試官通常會加 1-2 個追問約束,順著繼續推理即可。

不要求跑程式碼——思路組織、拆解、口頭表達 的權重遠高於執行結果。

題目一:自訂間隔規則的區間合併

題意

給定若干區間 [start, end]。經典題只合併相互重疊的區間,這裡加一條規則:如果兩個區間之間的間隔 ≤ k,也要合併

例:[[1,3],[6,8],[9,10]]k=2[6,8][9,10] 間隔為 1(≤ 2),合併成 [6,10],結果 [[1,3],[6,10]]

思路

  1. start 排序;
  2. 線性掃描,維護當前區間 (cur_start, cur_end)
  3. 若下一區間 next_start <= cur_end + k,則 cur_end = max(cur_end, next_end);否則把當前區間入結果,重置為新區間。

Python 解法

def merge_with_gap(intervals, k):
    """按 start 排序後線性掃描;間隔 <= k 視為可合併。"""
    if not intervals:
        return []
    # 先按起點排序,保證合併只需向右看一步
    intervals.sort(key=lambda x: x[0])
    merged = [list(intervals[0])]
    for start, end in intervals[1:]:
        cur = merged[-1]
        if start <= cur[1] + k:      # 間隔 <= k,合併
            cur[1] = max(cur[1], end)
        else:                        # 間隔過大,另起一個區間
            merged.append([start, end])
    return merged


# 快速自測
print(merge_with_gap([[1, 3], [6, 8], [9, 10]], 2))  # [[1, 3], [6, 10]]

時間複雜度:O(n log n)(排序主導) 空間複雜度:O(n)(結果陣列)

常見追問

如果輸入是串流 / 無限資料、區間陸續到達該怎麼辦?此時無法先排序。可維護一棵平衡樹 / 有序結構(或按到達順序用最小堆管理活躍區間),每來一個新區間就定位其左右鄰居,判斷間隔是否 ≤ k 並就地合併,單次操作 O(log n)。

題目二:最長交替差分子陣列

題意

給定整數陣列,找出最長連續子陣列,使得相鄰元素之差的符號交替出現。

例:[1,3,2,4,3],差分為 + - + -,全程交替,整段長度 5。

思路

暴力 O(n²) 列舉起點即可,但最優是一次線性掃描:從左到右維護「當前交替長度」和「上一個差的符號」;若當前差的符號與上一個不同 → 長度 +1;若相同 → 從當前這對元素重新計數;若差為 0 → 斷開重置。

Python 解法

def longest_alternating_subarray(nums):
    """線性掃描,維護當前交替長度與上一差分符號。"""
    n = len(nums)
    if n < 2:
        return n
    best = 1
    cur = 1          # 當前交替子陣列的元素個數
    last_sign = 0    # 0 表示尚無有效符號
    for i in range(1, n):
        diff = nums[i] - nums[i - 1]
        if diff == 0:            # 相等則斷開
            cur, last_sign = 1, 0
            continue
        sign = 1 if diff > 0 else -1
        if last_sign != 0 and sign != last_sign:
            cur += 1             # 符號交替,延長
        else:
            cur = 2              # 同號或首個差,從這對元素重新起算
        last_sign = sign
        best = max(best, cur)
    return best


# 快速自測
print(longest_alternating_subarray([1, 3, 2, 4, 3]))  # 5

時間複雜度:O(n) 空間複雜度:O(1)

常見追問

要求就地改寫陣列,使其前綴恰好存放最長交替子陣列。可用雙指標寫指標:掃描時同時維護一個寫入下標 w,把當前最長交替段的元素依次寫回陣列前段,最終前 best 個位置即為答案,額外空間 O(1)。

第三段:反問(幾分鐘)

留幾分鐘給你提問。可以問團隊做的產品線、實習生的日常專案、Bloomberg 的技術棧演進等。表現出對具體業務的興趣,比問「我表現怎麼樣」更加分。

備考策略

Bloomberg 第一輪難度中低,評估的是編碼基本功 + 溝通,而非演算法奇技。備考重點:

oavoservice 的 VO輔助 / VO代面 支援

針對 Bloomberg 這種「口頭推理主導、要求邊講邊寫」的一輪,oavoservice 提供:

具體方案與報價,加微信 Coding0201 溝通。


FAQ

Bloomberg 第一輪需要跑通程式碼嗎?

不需要。這一輪在 HackerRank 上完成但不要求執行,面試官更看重你能否清晰講出思路、拆解問題並給出複雜度。寫出正確、可讀的程式碼即可。

第一段專案問答會刷人嗎?

通常不會。專案問答偏模板化(最大挑戰、如何改進、團隊分工、why Bloomberg),目的是建立第一印象。準備一個 2 分鐘的結構化口述版本就足夠。

兩道演算法題難度如何?

中低,大致落在 LC Easy-Medium 區間,考察編碼基本功而非演算法難題。真正拉開差距的是口頭推理與溝通:先講清思路、拿到面試官認可再動手。

面試官加的追問一般是什麼方向?

多是加約束。比如區間合併會問「輸入是串流 / 無限怎麼辦」,交替子陣列會問「能否就地改寫陣列」。順著原思路往「線上處理」或「空間優化」方向推即可。

VO輔助 / VO代面 對這一輪有用嗎?

有用。這一輪吃「邊講邊寫」的表達節奏,VO輔助 可用 mock 把這套節奏練成肌肉記憶;VO代面 則在面試當天提供即時組織與追問應對的臨場支援,尤其適合容易「一緊張就悶頭寫」的同學。


正在準備 Bloomberg 實習 VO?

oavoservice 長期追蹤 Bloomberg 各輪真題與出題風格,mentor 熟悉其「口頭推理主導」的評分邏輯,可提供 HackerRank 風格限時模擬、專案問答腳本打磨、追問應對演練等 VO輔助 服務。

👉 立即添加微信 Coding0201獲取 Bloomberg 高頻題與 VO輔助方案

聯絡方式