一亩三分地论坛

 找回密码
 获取更多干货,去instant注册!

扫码关注一亩三分地公众号
查看: 1204|回复: 5
收起左侧

Bloomberg Onsite 三轮游

[复制链接] |试试Instant~ |关注本帖
rufa 发表于 2015-10-17 03:51:29 | 显示全部楼层 |阅读模式

2015(10-12月) 码农类 硕士 全职@Bloomberg - 网上海投 - Onsite |Otherfresh grad应届毕业生

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?获取更多干货,去instant注册!

x
NY两日行刚回来,可惜作业压身没能多呆几天,以后有机会一定要去玩玩啊~

第一轮: 中国妹子, 美国小哥。先简单自我介绍,然后聊了一点简历。然后中国妹子直接出题:最长连续子序列长度(元素相对顺序可变)。比如[5, 7, 6, 20, 27],返回子序列[5,6,7]的长度3。首先排序,然后顺序搜索判断即可。时间复杂度主要是排序 O(nlgn)。快速写完代码后,妹子问有没有更快的方法。于是想了一个Memoize+DF算法:假设输入数组A[], 首先扫一遍存入HaseSet方便确定一个元素是否存在,然后用另一个数组B[] (初始化为0)记录以每个元素作为起点能得到的最大序列长度。接着遍历A进行DFS来判断并记录计算过的所有中间节点。假如B不为0, 则不执行DFS(A) (因为已经计算过了),因此时间复杂度是O(n), 空间同样是O(n). 没来得及写代码,不知道有木有O(n)时间、O(1)空间的算法? 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
接着美国小哥出Design的题,所有股票价格有 name, price 属性,股票价格在不断更新,怎么设计系统来获得某只股票最新的10条股票信息,主要讨论思路和数据结构。直接说用一个长度为10的队列来记录股票信息流,只存最新的10条记录,需要最新10条的时候遍历并打印出来,然后建
哈希表(name, queue(price)),需要哪只股票的最新10条信息就去对应的队列里找就行。然后小哥说ok就结束了。(咋有点简单。。)

休息:午饭直接坐会议室吃,大概等了20分钟不到。 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
第二轮:中国老哥, 印度老哥。B家面试都是允许你坐着纸上写代码思路,感觉就像讨论,因此不那么紧张(尽管第一轮我写玻璃墙上了)。印度老哥很活跃,就像同学讨论问题一样,尽管有口音但交流非常顺畅,很热情。相比之下中国老哥略沉默(莫非对英语不够自信....)。题目是写一个getLatestNStocks(int n)函数,返回最新n支股票的名字,不能有重复。比如我的股票更新记录是:
OMG
LGD
EDG
LGD
AFK
假如要返回最新的4支股票的名字,则应该是[AFK,LGD,EDG,OMG]。先说了直接方法,用HashMap(name, timestamp)存储数据,但是每次调用getLatestNStocks()都要顺序扫一遍,效率很低。印度老哥问高效点怎么做,当时卡了一下。于是中国老哥问我都学过什么数据结构,一口气说出"Array, Tree (BST, Heap, Trie), Graph, 竟然忘了链表。。在印度老哥提示下想起来了双向链表,于是配合哈希可以建一个HashMap(name, LinkedListNode),每次更新股票的时候都先把HashMap当前股票对应的LinkedListNode从双链表中删除,然后加到链表起始位置。同时也说了具体实现的时候有很多可以注意的地方,比如假如已经在队头就什么都不做,假如在队尾删除的时候要注意空指针等等。然后时间复杂度就是O(n)了,印度老哥说不错效率很高。除此之外还有若干概念题:. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
1. Java的Interface作用,能带来什么好处,举了具体例子。
2. 中国老哥看到我简历上有MongoDB,于是让我比较MongoDB和MySQL,前者Document Based属于NoSQL的一种,后者是标准的SQL了。了解不是特别深入,尽我所能结合project说了一些。
3. C++和Java比较。说了前者有指针,更底层,效率高;后者没指针,经过中间代码层和JVM,速度稍慢。
4. 一个不懂行的人要做系统,你推荐C++还是Java。先问什么类型的系统,单机尤其GUI用C++,Web-based用Java。于是问Web-based为什么用Java,C++不行吗。这里卡住了,因为我没见过C++能做Web后台,于是说了C++可以有网络通信TCP、UDP方式,有木有Web-service我不知道。。
4. Java是按值传递还是按引用。答曰primitve是按值,其余都是按引用。中国老哥说Java文档说其实都是按值,你怎么解释。答曰可能内部实现传递的是JVM中的内存地址的值,但由于是指向内存的同一个对象,因此就像“按引用”传递,老哥说make sense。


第三轮:老美,中年资深美女HR(好吧我不知道她是Manager还是啥)。全是Behavior问题,LZ自恃英语不错交流很顺畅。问题包括:
1. 自我介绍. From 1point 3acres bbs
2. 觉得纽约怎么样-google 1point3acres
3. 为什么来美读书,感觉美国怎么样
4. 介绍自己做过的一个project.鏈枃鍘熷垱鑷1point3acres璁哄潧
5. 目前找工作处于什么阶段
6. 然后高潮来了,说这是最后一轮,你有啥问题?

LZ心里一惊,之前看面经不都是四轮到底或者二轮跪吗?!于是问为啥我只有三轮,HR说每个人背景不同面试流程不一样的。于是心中暗想莫非前两轮技术过关不用继续面了,抑或太渣没必要继续了(不可能吧。。)
最后说一下感受,HR说B家70%利润来自软件,因此我感觉对Engineer比较重视。加上之前mnmunknown 兄面经贴的详细介,我对他家感觉挺不错的~.鐣欏璁哄潧-涓浜-涓夊垎鍦
HR说一周内答复,不只有木有跟我一样只有三轮的童鞋,期待好消息!.1point3acres缃

. 鍥磋鎴戜滑@1point 3 acres

评分

1

查看全部评分

lianlu 发表于 2015-10-19 09:08:10 | 显示全部楼层
我咋记得第一题找到连续的序列是leetcode原题哪。好像是用hashmap,存元素值到包含该值的最长长度。每次加入元素是看他的directly neigb是否存在,如果存在则更新最远端的最长长度。

补充内容 (2015-10-19 09:13):
第二轮中楼主当场设计了一个LRU, 还是挺佩服的!https://leetcode.com/problems/lru-cache/
回复 支持 反对

使用道具 举报

blopas 发表于 2015-10-19 09:21:03 | 显示全部楼层
lz网申投了多久之后 有回复的啊
回复 支持 反对

使用道具 举报

 楼主| rufa 发表于 2015-10-19 10:58:51 | 显示全部楼层
blopas 发表于 2015-10-19 09:21
lz网申投了多久之后 有回复的啊

时间有点久记不太清了,查了下邮件是8月31收到phone interview的邮件,我投的时候大概不早于那之前一个多星期吧
回复 支持 反对

使用道具 举报

 楼主| rufa 发表于 2015-10-19 11:01:42 | 显示全部楼层
lianlu 发表于 2015-10-19 09:08
. more info on 1point3acres.com我咋记得第一题找到连续的序列是leetcode原题哪。好像是用hashmap,存元素值到包含该值的最长长度。每次加 ...

确实是那道原题,只是当时只做了一遍哈希表水过,根本没考虑效率问题。
非常感谢指出第二题!想了一下确实就是LRU,很久前那题百思不得解,用stack各种超时,至今未看答案。听君一席话,顿时明白怎么做了,加油共勉!
回复 支持 反对

使用道具 举报

ycr2011 发表于 2015-10-21 12:11:45 | 显示全部楼层
多谢楼主分享!我是上周三面的,有可能和楼主同一天诶 请问现在出结果了吗?我还在等
回复 支持 反对

使用道具 举报

本版积分规则

请点这里访问我们的新网站:一亩三分地Instant.

Instant搜索更强大,不扣积分,内容组织的更好更整洁!目前仍在beta版本,努力完善中!反馈请点这里

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明 ( 沪ICP备11015994号 )

custom counter

GMT+8, 2016-12-10 09:17

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

快速回复 返回顶部 返回列表