Bloomberg oncampus 4轮完整面经

上周面完的一共四轮on campus面试,三天面完。
第一轮:
看起来很年轻的两个小哥哥,一个华人一个印度人。第一题:一个integer二维矩阵,从左上角出发,问到右下角的最短hop数目hop的规则是每次只能往右或下,跳的长度是当前matrix的entry值,用了一个简单的BFS就好了。第二题:写一个小system可以保存最近浏览的URL、删除某一个URL、并且可以返回最近访问的url,其实 就是LRU。写到一半的时候估计面试官知道我做过,就直接问了一些followup,说现在想要删除多个URL比如现在存了十年的,想删掉五年以前以及更早的我说可以用hashMap快速定位,然后问要是想删除所有满足一个特定prefix的url怎么办,我想了一下说用prefix找string的方法最好的就是trie,面试官可能没预料到这个答 案,但还是表示赞成;后来还有时间就又做了一个,叫什么perfect number,很简单就不提了。
第二轮:
两个面试官看起来像senior engineers。第一题:现在假设我们有多个}inked list,他们的特定是有各自的head,但是会他们的尾部是共享的(你可以想象成很多条河流 最后汇聚成一条)。问怎么找出哪一条是最靠近尾部的(也就是哪一条河流是最后流进主流的)。我的方法是遍历所有链表的所有点,记录每一个被访问的次数,那么 要找的那个list,它的点要么被访问一次,要么被访问N次,N是我们所有河流的数目。中途面试官提示我可能不要做两个pass,但是我没get到,面试官也没纠结了。第 二题:现在假设一个stream,源源不断输进[“apple”, 500],["microsoft’, 700]这种信息,也就是股票名+ volume,设计一个system,add()接收这样的一条信息, getDashBoard(int k)返回总的volume最大的k个股票。一开始想了一个priorityQueue的方法,能够实现但是不太好,于是就用了linked-list,缺点是在插入一个node 时候,需要做线性搜索,于是可以维护一个tree Map让搜索时间变成o(logN),最后说,要是我现在add的调用非常快速,而getDashBoard可能五分钟才一次,可以改 进吗?我一开始没有理解面试官的意图,后来他说他们觉得对数时间的插入还是太慢了,而且其实两个函数的性能可以trade-off,瞬间get到了,就说那就不如简单点, 只用map存股票和volume,要getDashboard了就用pq得到就好了。
第二题基本没写code,一直在配合需求变化而改自己的设计。感觉面试官考察的重点也是怎么根据实际需求来设计自己的结构,并不一定所有的操作都要最优。 为自己这一轮凉了,但是还是给了下一轮。
第三轮:
又美又甜的白人HR小姐姐,基本是BQ
1.自我介绍
2.实习的mentor给了你什么feedback
3. offer最看重的几个因素
4.实习遇到的一些困难
5.还要一些忘记了…总之HR职业素养很高,给人的感觉非常好
第四轮:
senior manager
1.详细聊两段实习
2.如果可以重来,你觉得你实习哪一部分可以做的不一样?
3.你从实习学到了什么
4.你最喜欢的proj
最后我提了几个问题,但是基本就是在闲聊,因为聊到NYC就开始话特别多,甚至聊到了最近的美网和百老汇,面试官说自己在现场看了osaka和coco的比赛我说我也 看了电视而且coco还哭了啥啥啥的,我说我最近看了hamilton他说啊啊啊那个很好看……虽然面试官看起来严肃不苟言笑,但还是跟我分享了很多工作以外的事情(虽 然我不确定聊这些是不是不太好……
一直很喜欢BB,从好朋友的口中也知道了更多关于BB的消息,面完之后更加喜欢这个公司了……希望有个好结果!也祝大家好运!