Bloomberg SDE 面不只看你解题,更看重你的系统思维和沟通能力。 技术面试里的算法题,比如设计一个处理连续数据流的数据结构,其实是在考察你如何用平衡二叉树(如C++的map)来优化查找和合并逻辑,处理复杂的边界情况,这背后就是系统设计的思维。 分享下最近遇到的 Bloomberg 面经 – 三轮面试,两轮是Coding,1轮HM,看的出来,彭博社还是很喜欢算法数据结构表现优异的候选人。
Bloomberg VO时间线
9.21 refer
9.26 apply
10.3 phone邀请
10.24 phone interview: 25分钟简历➕why bloomberg,做了LC445。
11.28 VO邀请: on campus满了,virtual约到了12.7。
12.7 Back to back 面试
Bloomberg 面经 – VO 1
这轮是纯Coding面试,开始简单自我介绍5分钟后,开始做题。
第一题:给出一个数组,最多可以删掉其中一个数,也可以不删,问能否让每个数字出现的次数相同。
解题思路:可以先用哈希表freq记录每种数字出现的次数,然后再使用哈希表freq_of_freq记录每种次数出现的次数 然后如果freq_of_freq长度为1,也就是只有一种长度,那就可以不删 如果freq_of_freq长度为2,那么记其中的两种次数以及次数的次数分别为(f1, v1)和(f2, v2),如果其中一个v等于1,且对应的f也等于1,或者等于另一个f加1,那么把这个v对应的字符删掉一个之后,v对应的f就会变成f – 1,也就是变成0,或者变成另一个f。比如aabbc,c对应的就是v和f都等于1;比如aabbccc,c对应的就是v等于1,f等于另一个f加1。
第二题:给出一个压缩后的字符串,比如3[a3[b]]的形式,要求解压,得到abbbabbbabbb。
解题思路:做法是栈模拟,记录一个当前的字符串curr,碰到字符就添加到curr末尾,碰到数字就把数字和curr一起入栈并跳过左括号,碰到右括号就弹出栈顶的pre和数字f,将curr复制f次添加到pre的末尾形成新的curr。
Bloomberg 面经 – VO 2
首先问了一下简历,大概15分钟,然后进入coding, 提供一个secret string,一个玩家guess的string,相同length, 对于每一个特定的index下,如火guess的char与secret的char相同,则print*,如果不同,分两种情况1)如果guess的这个char在secret里面也出现了,print +,如果没有,print -. 之后 follow up,时间空间复杂度,然后修改题目,问如果考虑freq的情况下怎么办。
解题思路:先把 secret 的所有字符放进一个集合 set,然后遍历输出,时间复杂度O(n),空间复杂度O(k)。
Follow up解题思路:每个字符只能匹配有限次,这就变成 Wordle/Bulls&cows 的正确计数:同一个 secret 里的字符不能被 + 无限复用,第二次遍历再处理剩下的 +/-:用剩余频次决定能不能给 +,时空复杂度不变。
Bloomberg 面经 – VO 3
第三轮是hr面:介绍一下自己,然后问了几个常规的BQ:
- Why bloomberg?
- Most interesting project?
- What new thing did you learn about bloomberg from your previous interviews?
- Two things you are looking for when you apply to jobs?
总体而言,面试体验很好,面试官都很友善、礼貌,沟通氛围积极。面完后,面试官说hr很快会联系我, 官方说法是七个工作日内通知结果. 之后出结果了我再来update, 希望能有幸福来敲门哈哈。如果你也需要面试辅导,Bloomberg面试辅助等服务,请与我们联系,帮助多位候选人拿到Bloomberg的offer。