r********y 发帖数: 30 | 1 从去年9月开始找工作至今,面试过不少地方,但目前都没有拿到心仪的offer,所以就
在此发发面经,攒些人品,也希望楼主的经历能够给大家提供一些帮助
Bloomberg (phone + in house interview)
phone interview:
why bloomberg,一些基础的java概念题,比较杂,ood方面考察的比较仔细,也考了堆
栈的基础概念,另外还有一些数据结构的题,最后是一道算法题:一个数组中找到最大
的两个数,一天后通知in house interview
in house interview(一共四轮)
一开始先是在大厅等,之后由recruiter带着在Bloomberg大楼里转了一圈(29楼的view
真的很赞),brunch之后开始interview
第一轮:
两个三哥+一个黄皮肤的GG(应该是shadow?),这里不得不提一句Bloomberg的三哥是
我见过的最nice的三哥(至少表面看起来)
why bloomberg,
tell me about your project,
一个data stream 找top 10,
sqrt(x) 返回floor,
一个系统接受data stream,要求用户在任意时间按下stop时随机返回之前进入系统中
的某个数字(要求等概率)
第二轮:
一个三哥一个黄皮肤GG,一上来简单自我介绍后就是做题
what's bst?
给一个bst,返回该bst的镜像(翻转这个bst)
打印出指定层的bst node value
best time to buy and sell stock
longest palindrome substring(要求复杂度为O(n),当时没看过这道题结果只想出
一种O(n^2)的)
LRU(被之前的那道题搞得懵了,这道题也没答好)
第三轮:
一个白人胖大叔
why bloomberg(他们真的很喜欢这个问题啊)
tell me about your project(后来感觉他是要用这个project来判定你对什么最感兴
趣,所以尽量讲相关的project吧各位)
设计一个系统,接受不断变化的股价信息并将之更新到手机上的客户端,手机客户端只
发送一次请求;楼主感觉就是栽在了这题上了,因为一开始他画的图上包括了从数据流
到客户端的所有环节,所以我就很自然的想到要把所有的因素都考虑进去,因为客户端
只发送一次请求,那么就要求要保存与客户端的联接,所以楼主的方案一直围绕着这一
点,但是胖大叔他一直说这样不行,如果机器资源有限,cpu很low什么什么的怎么办,
于是楼主在实在没有办法了,沉默了一段时间后楼主抱着试一试的态度说了一句“
broadcasting?”胖大叔马上有了强烈的反应,他表示这就是他一直希望楼主能够说出
来的,但是这时楼主更奇怪了,如果cpu真的那么low,那一开始就不能处理这么多的终
端啊,于是楼主弱弱的问了胖大叔,胖大叔愣了一下,解释说这个系统有前端和后端,
楼主这时才明白胖大叔他只管把数据update送给前端,怎么发就是前端的事情了,但问
题是他画的那图非常的误导啊,没办法,事已至此,只能认了
第四轮:
一个白人大叔(HR)问得都是behaviour的问题,包括一个tell me about your
project
5天后等来了拒信
Amazon(online assessment)
没错,你没有看错,楼主第一次申请Amazon连online assessment都没过,到现在楼主
想到当时的情景还是心头一紧,且听楼主分解:
online assessment一共三题,其中第一,第三题因为太简单所以楼主记不清了,大概
印象中有一题是跑马拉松什么的要求check duplicate,用hashmap一下就做好了,楼主
要说的是第二题,这个第二题啊,楼主到现在都没有想出来该怎么做,也不想去想了,
只能说碰到这样的题目就是命。。。究竟这道题目是什么呢?当当当当,题目很短,楼
主反反复复看了M遍,确定没有眼花:
Find K closest points in N points on a 2D plane(N>>K)
有兴趣的童鞋可以拿去钻研钻研,钻研好了欢迎把详细的答案回复一下,以解楼主心头
之疑惑,相信大家都会感谢你的(起码楼主会)
Epic(1 phone interview + 1 online assessment + 1 onsite interview)
phone interview:
tell me about yourself
why epic
tell me about your project
how to design a login interface for cell phone app
online assessment:
四个部分,第一部分是热身,一分钟还是两分钟做20还是多少道快速问答
另外三个部分不限时,其中一个部分跟GRE和IQ测试有些类似,另一个部分是根据他给
出的提示现学一门语言来回答问题,最后一个部分是算法题,一共四题,难度中等,其
中两题楼主记不太清了(太久了),一题好像是在矩阵中找最长的递增路径,还有一题
是类似于make change,但要求用最少的coin个数
onsite interview:
基本上onsite interview就是去玩的,带着各种逛epic的campus,介绍他们的产品,了
解他们的开发流程和历史,只有两个technical的part,一个是case study,要求设计
一个database来追踪疫苗注射者的注射情况(因为有些疫苗需要多次注射),另一个就
是介绍你的一个project(邮件里写了20分钟)并且剩下的时间做一些测试,楼主感觉
可能就是栽在这一轮上面了,跟楼主一个小组的人的面试官都是白人GG,就楼主的面试
官是一个三哥,而且就是这个三哥还迟到了,把楼主一个人晾在那里等,然后就是介绍
project的时候,他一直不停的问问题,结果整个project楼主给介绍了40分钟,最后只
剩下几分钟他说你问问题吧(楼主在讲的时候他还一直斜着眼睛看楼主。。。),结束
的时候一边走一边跟他闲聊,他居然把楼主的学校都记错了。。。给楼主感觉此人真的
对楼主很不上心啊有木有,最后是HR面,一周后接到电话录音通知被拒了
Microsoft(一轮on campus):
楼主通过career fair投了Microsft,拿到了在学校campus的面试,面试官是一个中年
中国人,当时楼主一看到是个同胞心一下就定了(too simple! sometimes naive!)
,一开始上来貌似很nice的跟楼主聊天(用英语),然后就是做题,题目很简单tic-
tac-toc判断win,楼主先使用了O(N)的方法,然后优化成O(1)的方法,在楼主
coding的同时,这位同胞开始在房间里走来走去,一会站到窗边,一会坐在角落的沙发
上,反正就是不在楼主桌前,楼主本着professional的精神一直在边写边说(自言自语
好像神经病一样。。。好难过),最后写完,同胞解释了一下说自己从西雅图飞过来太
累了,又闲聊了一会,同胞目送楼主离开。约20天后接到拒信
Zillow(1 take home task + 1 phone interview)
take home task:
1. parse a string to long
2. implement insert/delete methods for a tri-nary tree
5天后接到phone interview
phone interview
1. tell me about your project
2. 阶乘factorial
3. 写blackjack(21点,楼主当时假装不知道,拖了会时间,忏悔。。。)的getScore
函数
4. 设计一个数据结构,保存tic-tac-toc(怎么又是tic-tac-toc)游戏的状态(不是
判断输赢),棋盘的size是2^31*2^31,只需要3个子相连就算赢,问怎么用8GB的内存
保存棋盘的状态(不能保存到磁盘上),这题楼主没答上来,也不知道正确答案是什么
,如果有知道的童鞋,如果方便的话还希望能够把答案发一发,楼主在这里先谢过啦。
一周后接到拒信
写了这么多,希望楼主的经历能够对大家有所帮助,也希望大家能够早日拿到自己满意
的offer,同时也希望楼主自己也能够早日拿到楼主满意的offer。PS:如果论坛里的哪
位能够帮忙推荐一下那就实在是太感激不尽了。
攒人品,求bless |
x****o 发帖数: 29677 | 2 赞好人,Microsoft那个不用太在意,他也蹦不了多久了 |
l****r 发帖数: 118 | 3 先谢谢lz分享同时bless lz!
接着简单说说我的思路(amazon题)
算每一个点距离其他点的距离,结果放进
double[][] distance; distance[i][j] = distance[j][i],所以每个点只需要算和(
数组里)他之后点的距离。
然后在每行里找到第k小的值(可以先想法对这一行排序)。
这个值最小的那一行的行号(i)就代表了 Point[i]相当于这个要找区域的中心,加上
离它最近的k-1个其他的点就是答案。
btw LeetCode里有一道有点类似的题,算2d平板上同线的maximum points.
view
【在 r********y 的大作中提到】 : 从去年9月开始找工作至今,面试过不少地方,但目前都没有拿到心仪的offer,所以就 : 在此发发面经,攒些人品,也希望楼主的经历能够给大家提供一些帮助 : Bloomberg (phone + in house interview) : phone interview: : why bloomberg,一些基础的java概念题,比较杂,ood方面考察的比较仔细,也考了堆 : 栈的基础概念,另外还有一些数据结构的题,最后是一道算法题:一个数组中找到最大 : 的两个数,一天后通知in house interview : in house interview(一共四轮) : 一开始先是在大厅等,之后由recruiter带着在Bloomberg大楼里转了一圈(29楼的view : 真的很赞),brunch之后开始interview
|
l**********1 发帖数: 415 | 4 lz确定A的第二题不是Find K closest points to origin in N points on a 2D plane
? 不然太变态了吧。 |
z********1 发帖数: 262 | |
r********y 发帖数: 30 | 6 谢谢,也不是恨他,就是挺不能理解的
【在 x****o 的大作中提到】 : 赞好人,Microsoft那个不用太在意,他也蹦不了多久了
|
r********y 发帖数: 30 | 7 谢谢回复
那个题目我一开始也是这样想的,但是后来想想又不太对,因为最近的点群不一定是以
某一个点为中心的,而且这样算没有考虑方向
【在 l****r 的大作中提到】 : 先谢谢lz分享同时bless lz! : 接着简单说说我的思路(amazon题) : 算每一个点距离其他点的距离,结果放进 : double[][] distance; distance[i][j] = distance[j][i],所以每个点只需要算和( : 数组里)他之后点的距离。 : 然后在每行里找到第k小的值(可以先想法对这一行排序)。 : 这个值最小的那一行的行号(i)就代表了 Point[i]相当于这个要找区域的中心,加上 : 离它最近的k-1个其他的点就是答案。 : btw LeetCode里有一道有点类似的题,算2d平板上同线的maximum points. :
|
r********y 发帖数: 30 | 8 我反反复复看了很多遍,不敢相信自己的眼睛,但是事实就是没有那个origin的。。。
plane
【在 l**********1 的大作中提到】 : lz确定A的第二题不是Find K closest points to origin in N points on a 2D plane : ? 不然太变态了吧。
|
r********y 发帖数: 30 | 9 谢谢
【在 z********1 的大作中提到】 : bless 楼主
|
l****r 发帖数: 118 | 10 确实,我也觉得有点问题。
【在 r********y 的大作中提到】 : 谢谢回复 : 那个题目我一开始也是这样想的,但是后来想想又不太对,因为最近的点群不一定是以 : 某一个点为中心的,而且这样算没有考虑方向
|
|
|
P****9 发帖数: 177 | |
r********y 发帖数: 30 | 12 谢谢
【在 P****9 的大作中提到】 : 楼主拿到这么多面试已经很牛了,祝楼主好运!
|
c*********s 发帖数: 385 | 13 赞人品。MS那段写得很生动,哈哈。
觉得LZ离offer不远了,加油。 |
P**********k 发帖数: 1629 | 14 tic-tac-toc 那个大棋盘的是不是就是类似sparse矩阵的存储方法
就存储 (x, y, z)的值,z是0或者1表示某一方的棋子
view
【在 r********y 的大作中提到】 : 从去年9月开始找工作至今,面试过不少地方,但目前都没有拿到心仪的offer,所以就 : 在此发发面经,攒些人品,也希望楼主的经历能够给大家提供一些帮助 : Bloomberg (phone + in house interview) : phone interview: : why bloomberg,一些基础的java概念题,比较杂,ood方面考察的比较仔细,也考了堆 : 栈的基础概念,另外还有一些数据结构的题,最后是一道算法题:一个数组中找到最大 : 的两个数,一天后通知in house interview : in house interview(一共四轮) : 一开始先是在大厅等,之后由recruiter带着在Bloomberg大楼里转了一圈(29楼的view : 真的很赞),brunch之后开始interview
|
v***n 发帖数: 5085 | 15 ...你这个cellphone login好像是我问的嘛...
view
【在 r********y 的大作中提到】 : 从去年9月开始找工作至今,面试过不少地方,但目前都没有拿到心仪的offer,所以就 : 在此发发面经,攒些人品,也希望楼主的经历能够给大家提供一些帮助 : Bloomberg (phone + in house interview) : phone interview: : why bloomberg,一些基础的java概念题,比较杂,ood方面考察的比较仔细,也考了堆 : 栈的基础概念,另外还有一些数据结构的题,最后是一道算法题:一个数组中找到最大 : 的两个数,一天后通知in house interview : in house interview(一共四轮) : 一开始先是在大厅等,之后由recruiter带着在Bloomberg大楼里转了一圈(29楼的view : 真的很赞),brunch之后开始interview
|
s******7 发帖数: 1758 | 16 tic-tac-toc 那道,一行刚好是一个integer 的二进制表达,占位 4 byte
一共2^31个integer, 刚好 8* 2^30 = 8G,刚好装下。 |
L******S 发帖数: 40 | 17 那个一行是2^31个bit,整数是4bytes=32bit,好像不对吧?
【在 s******7 的大作中提到】 : tic-tac-toc 那道,一行刚好是一个integer 的二进制表达,占位 4 byte : 一共2^31个integer, 刚好 8* 2^30 = 8G,刚好装下。
|
s******s 发帖数: 84 | |
s******7 发帖数: 1758 | 19 倒,原来是我看错了,等高人来解答吧
【在 L******S 的大作中提到】 : 那个一行是2^31个bit,整数是4bytes=32bit,好像不对吧?
|
i*****e 发帖数: 63 | 20 Find K closest points in N points on a 2D plane
可以试试 R-Tree的nearest neighbor search |
|
|
L******S 发帖数: 40 | 21 有个人在glassdoor上问了这个问题,但是没人回答
http://www.glassdoor.com/Interview/Given-a-2-31-x-2-31-tic-tac-
如果原题是这样的话,那就意味着保存数据的目的就是为了判断输赢,那就简单了
总共2^31行,也就是4G,每行用2 bit来记录这行有没有三连字,因为有四种情况,两
方都没有,两方都有,白方有,黑方有,总共要8G bits,然后列同理,也要8G bits,
剩下的就是两种对角线方向,每个需要16G bits,总共是16 + 16 + 8 + 8 = 48G bits
, 这个才6GBytes内存
我感觉这个题的描述太唬人了
【在 s******7 的大作中提到】 : 倒,原来是我看错了,等高人来解答吧
|
e****b 发帖数: 25 | 22 楼主bloomberg四轮觉得自己面得怎样?不是好多说四轮就offer的可能性很大 |
r********y 发帖数: 30 | 23 谢谢回复,关于你的解法能不能详细说说在增加一个子的情况下是怎么判断的吗?通过
大量的计算吗?这跟我的一个想法比较相似,我的想法是对某一种符号用两个2^31长度
的整数数组来分别表示行和列,数组的每个元素对应该行(列)的该种符号个数,然后
通过逆向计算可以得到当前的棋盘状态,要求内存正好是8GB,但是问题是如何进行逆
向计算以及如何保存逆向计算的结果呢
bits
【在 L******S 的大作中提到】 : 有个人在glassdoor上问了这个问题,但是没人回答 : http://www.glassdoor.com/Interview/Given-a-2-31-x-2-31-tic-tac- : 如果原题是这样的话,那就意味着保存数据的目的就是为了判断输赢,那就简单了 : 总共2^31行,也就是4G,每行用2 bit来记录这行有没有三连字,因为有四种情况,两 : 方都没有,两方都有,白方有,黑方有,总共要8G bits,然后列同理,也要8G bits, : 剩下的就是两种对角线方向,每个需要16G bits,总共是16 + 16 + 8 + 8 = 48G bits : , 这个才6GBytes内存 : 我感觉这个题的描述太唬人了
|
r********y 发帖数: 30 | 24 对呀,我看到的也是基本上四轮就是拿offer的节奏了呵呵,感觉还行吧,要是出了问
题应该就是第三轮的问题了,到最后才弄清楚他的意思,只能说没缘分吧
【在 e****b 的大作中提到】 : 楼主bloomberg四轮觉得自己面得怎样?不是好多说四轮就offer的可能性很大
|
r********y 发帖数: 30 | 25 谢谢
【在 c*********s 的大作中提到】 : 赞人品。MS那段写得很生动,哈哈。 : 觉得LZ离offer不远了,加油。
|
r********y 发帖数: 30 | 26 应该是个白人MM问的唉
【在 v***n 的大作中提到】 : ...你这个cellphone login好像是我问的嘛... : : view
|
r********y 发帖数: 30 | 27 谢谢
【在 s******s 的大作中提到】 : bless 楼主
|
r********y 发帖数: 30 | 28 谢谢回复,能详细说说吗?
【在 i*****e 的大作中提到】 : Find K closest points in N points on a 2D plane : 可以试试 R-Tree的nearest neighbor search
|
v***n 发帖数: 5085 | 29 我靠。。。那个是我半年前教的徒弟。。。
【在 r********y 的大作中提到】 : 应该是个白人MM问的唉
|
f******n 发帖数: 279 | |
|
|
r********y 发帖数: 30 | 31 那真是巧唉,她讲话很好玩的,一直yup yup哈哈
【在 v***n 的大作中提到】 : 我靠。。。那个是我半年前教的徒弟。。。
|
g****s 发帖数: 340 | 32 lz你的amazon第二题,我感觉95%是brute force解法就可以的。它没有理由比1,3难很
多。
我不知道这个assessment的形式,但如果lz能把function signature或input & output
发出来就会很明白。 |
r********y 发帖数: 30 | 33 谢谢回复,题目要求分三部分,第一是写思路,第二是分析复杂度,第三是coding,没
有example的input和output(或者我没有找到在哪里)
用brute force我感觉并不太可行,因为题目要求是找最靠近的k个点,我的理解是用最
小半径的圆来确定这些点,圆心并不一定在某个点上,所以可能性有无限多种,我记得
以前上某门课的时候提过一种叫kmeans的算法是用来算聚合点的,也许答案跟这个差不
多,我也在网上找过这个答案,貌似叫做k-diameter什么的有一篇论文来讲这个问题但
是因为没权限所以看不了,所以在这里希望有哪位高手懂的能够提供一下自己的答案,
或许我没太理解你的意思,不过请问你能否提供以下brute force的思路呢?我现在对
这题已经没想法了,就是很好奇
output
【在 g****s 的大作中提到】 : lz你的amazon第二题,我感觉95%是brute force解法就可以的。它没有理由比1,3难很 : 多。 : 我不知道这个assessment的形式,但如果lz能把function signature或input & output : 发出来就会很明白。
|
r********y 发帖数: 30 | 34 童鞋我突然想到你是不是指用O(N^k)的算法?
output
【在 g****s 的大作中提到】 : lz你的amazon第二题,我感觉95%是brute force解法就可以的。它没有理由比1,3难很 : 多。 : 我不知道这个assessment的形式,但如果lz能把function signature或input & output : 发出来就会很明白。
|
M**a 发帖数: 848 | 35 请问lz
Bloomberg的phone interview 是用hackerrank么?
谢谢啊。 |
b****f 发帖数: 138 | |
r********y 发帖数: 30 | 37 这个貌似有点高端,当时电话面就是纯口述的
【在 M**a 的大作中提到】 : 请问lz : Bloomberg的phone interview 是用hackerrank么? : 谢谢啊。
|
s******t 发帖数: 229 | 38
bits
每行为什么2个byte啊?
【在 L******S 的大作中提到】 : 有个人在glassdoor上问了这个问题,但是没人回答 : http://www.glassdoor.com/Interview/Given-a-2-31-x-2-31-tic-tac- : 如果原题是这样的话,那就意味着保存数据的目的就是为了判断输赢,那就简单了 : 总共2^31行,也就是4G,每行用2 bit来记录这行有没有三连字,因为有四种情况,两 : 方都没有,两方都有,白方有,黑方有,总共要8G bits,然后列同理,也要8G bits, : 剩下的就是两种对角线方向,每个需要16G bits,总共是16 + 16 + 8 + 8 = 48G bits : , 这个才6GBytes内存 : 我感觉这个题的描述太唬人了
|
s******t 发帖数: 229 | 39 c(n,k),所有组合试一遍,选那个最小的呗,brute force怎么可能不行啊
最靠近的定义就是两两点的euclidean所有总和最小吧?
再优化的话,就是先用kmean大致分几个cluster,再选个最dense的,求个ssn什么的,
看谁最小,不过这种方法不一定是global minimum,不过复杂度会减少很多
【在 r********y 的大作中提到】 : 谢谢回复,题目要求分三部分,第一是写思路,第二是分析复杂度,第三是coding,没 : 有example的input和output(或者我没有找到在哪里) : 用brute force我感觉并不太可行,因为题目要求是找最靠近的k个点,我的理解是用最 : 小半径的圆来确定这些点,圆心并不一定在某个点上,所以可能性有无限多种,我记得 : 以前上某门课的时候提过一种叫kmeans的算法是用来算聚合点的,也许答案跟这个差不 : 多,我也在网上找过这个答案,貌似叫做k-diameter什么的有一篇论文来讲这个问题但 : 是因为没权限所以看不了,所以在这里希望有哪位高手懂的能够提供一下自己的答案, : 或许我没太理解你的意思,不过请问你能否提供以下brute force的思路呢?我现在对 : 这题已经没想法了,就是很好奇 :
|
s******t 发帖数: 229 | |
|
|
r********y 发帖数: 30 | 41 很高端的样子,我感觉我目前还是写不来,你有代码能发下不?造福一下群众
【在 s******t 的大作中提到】 : c(n,k),所有组合试一遍,选那个最小的呗,brute force怎么可能不行啊 : 最靠近的定义就是两两点的euclidean所有总和最小吧? : 再优化的话,就是先用kmean大致分几个cluster,再选个最dense的,求个ssn什么的, : 看谁最小,不过这种方法不一定是global minimum,不过复杂度会减少很多
|
s******t 发帖数: 229 | 42 代码其实挺简单的,就是编一个combination的algorithm。kmeans那种方法我就不编了
啊,kmeans算法满大街都是
sse=Sum of Squares Error
int min=MAX
void combination(int n, int k, Stack stack, int len) {
if (stack.size() == len) {
if (min > sse(stack, distance_matrix)) {
result = stack;
}
return;
}
if (n < k || k < 1) {
return;
}
stack.add(n);
combination(n - 1, k - 1, stack, len);
stack.pop();
combination(n - 1, k, stack, len);
} |