← 返回博客列表 Bloomberg NG SDE 校园面复盘:两轮连面 + 四道 Coding 真题全解
Bloomberg

Bloomberg NG SDE 校园面复盘:两轮连面 + 四道 Coding 真题全解

2026-06-04

这次分享一位刚通过 Bloomberg New Grad SDE 校园面试的学员,从投递到两轮技术面只用了一周多,效率非常高。题目都是 LeetCode Medium 难度,但节奏很快、面试官互动密集,整体体验意外地轻松。

一、时间线概览

时间 事件
Day 0 通过学校渠道投递简历
Day 0 当天收到 HR 面试邀请
Day 7 确认校园面试(On-site 模式)
Day 9 第一轮(技术 + 行为)
Day 10 第二轮(技术 + 深挖)

一周多走完两轮,Bloomberg 的校招节奏确实快。

二、第一轮:行为 + 两道 Coding

第一位面试官是位很温和的华人女士,氛围轻松。先寒暄,再进标准的 Bloomberg 行为题流程。

行为题

Bloomberg 特别看重「模糊情境下的逻辑与沟通」能力,会追问得很细,比如「你怎么和团队沟通去澄清需求?」「最终结果符合预期吗?」

Coding 1:有效三角形个数

给一个数组,统计能组成多少个有效三角形(任意两边之和大于第三边)。

def triangleNumber(nums):
    nums.sort()
    n, count = len(nums), 0
    # 固定最长边 k,双指针找另两边
    for k in range(n - 1, 1, -1):
        i, j = 0, k - 1
        while i < j:
            if nums[i] + nums[j] > nums[k]:
                # i..j-1 与 j 都能和 nums[k] 组成三角形
                count += j - i
                j -= 1
            else:
                i += 1
    return count

思路:排序后固定最长边,双指针。复杂度:时间 O(n²),空间 O(1)。几分钟直接 AC。

Coding 2:扁平化多级链表

链表节点除 next 外还有 child,要求扁平化成单层链表。

def flatten(head):
    if not head:
        return head
    stack, curr = [], head
    dummy = prev = None
    while curr or stack:
        if not curr:
            curr = stack.pop()      # child 分支处理完,回到主链
        if prev:
            prev.next = curr
            curr.prev = prev
        if curr.child:
            if curr.next:
                stack.append(curr.next)  # 暂存主链后续
            curr.next = curr.child
            curr.child = None
        prev, curr = curr, curr.next
    return head

思路:栈模拟 DFS,遇到 child 先深入、把 next 压栈。复杂度:时间 O(n),空间 O(n)。

三、第二轮:简历深挖 + 两道 Coding

第二轮两位面试官,风格更技术、更深入。

简历与项目追问

智能指针那部分项目年代久远,学员只能现场回忆概念,好在语气沉稳没露怯。提醒:简历上写的每个技术点都要能往下讲一层。

Coding 1:节点最多的层

给一棵二叉树,找出节点数最多的那一层,返回层号。

from collections import deque

def maxLevel(root):
    if not root:
        return 0
    q = deque([root])
    best_level, best_count, level = 1, 0, 0
    while q:
        level += 1
        size = len(q)
        if size > best_count:
            best_count, best_level = size, level
        for _ in range(size):
            node = q.popleft()
            if node.left: q.append(node.left)
            if node.right: q.append(node.right)
    return best_level

思路:BFS 层序遍历,记录每层节点数。复杂度:时间 O(n),空间 O(n)。五分钟搞定。

Coding 2:接雨水

Bloomberg 的最爱题。给柱高数组,求能接多少雨水。

def trap(height):
    if not height:
        return 0
    left, right = 0, len(height) - 1
    left_max = right_max = water = 0
    while left < right:
        if height[left] < height[right]:
            # 左侧更矮,结果由 left_max 决定
            left_max = max(left_max, height[left])
            water += left_max - height[left]
            left += 1
        else:
            right_max = max(right_max, height[right])
            water += right_max - height[right]
            right -= 1
    return water

思路:双指针 + 两侧最大值。复杂度:时间 O(n),空间 O(1)。

四、备战要点

维度 建议
行为题 准备「模糊需求 + 沟通澄清」类故事,Bloomberg 爱追问
Coding Medium 为主,双指针/BFS/链表高频,速度要快
简历 每个技术名词(如 smart pointer)都要能讲原理
节奏 互动密集,边写边讲思路,面试官很在意沟通

FAQ

Q1:Bloomberg 校招真有这么快吗?

这位学员一周多走完两轮,确实快。但节奏因校而异,关键是收到面试邀请后立刻进入状态,行为题和高频 Coding 都提前备好。

Q2:Coding 难度到什么程度?

基本都是 LeetCode Medium:有效三角形、链表扁平化、BFS 层序、接雨水。骨架不难,但节奏快、要边写边讲,光会做不够,表达也要跟上。

Q3:接雨水为什么是 Bloomberg 最爱?

它能同时考双指针、空间优化和边界处理,O(1) 空间解法很能区分候选人。建议把双指针版本练到能默写并讲清原理。

Q4:智能指针这类简历追问怎么准备?

简历写了就要能讲原理。智能指针要能说清 shared_ptr 引用计数、unique_ptr 所有权、循环引用与 weak_ptr。别写没深入用过的技术。


正在准备 Bloomberg 的校园面?

Bloomberg 校招节奏快、互动密、Coding 偏 Medium 但要快准稳。如果你想要两轮的限时陪练、行为题「模糊需求」专项打磨,或高频 Coding 题库陪练,欢迎联系交流,发岗位 JD 先做题型预测,再排练习计划。

立即添加微信 Coding0201获取 Bloomberg 校园面真题与陪练

联系方式