bloomberg两轮游

avatar 213087
yuanxiehuang
2503
7
今天刚面了bloomberg的onsite,然后就是两轮游...
1. 老白+烙印:

1.1 给一个sorted array of int, 构建出一棵最小depth的BST,老白是俄国人,我一开始没听清,从index*2 和 index*2+1上去做这个题,然后发现不对,立马改正,选取中间的node来构建树,然后left child 和 right child都构建一下.
1.2 stock buy and sell I, 我写完了,follow up了一下是不是可以把判断local minimum放在前面,然后update currMax放在后面有什么好处?提醒后也都说出.
1.3 设计一个bignumber的class,我说用array of int来实现,然后要implement plus这个member method, 然后烙印说是不是用+比较好,我说好呀,那就overload一下,然后就写了一下,然后烙印问了一下为啥用array of int, 用array of char可不可以,我说可以,然后烙印问哪个好?我说他们的size不同,烙印问是多大,我已经记不清了,就说都是1一个byte,烙印说这个没事.

2. 小白+中墨:

2.1 设计一个class, 是一个search engine, 用来search documents, 有很多的docuemtn, 要实现public void index(Document document)和public arraylist<> search(String keyword)这两个memeber method,每一个docuemtn class有一个collection of key words。我一开始用两个hashtable来做,然后写了一下代码,两个人都说ok 然后问我当数据大的时候是不是很慢,我说是呀,然后我就用trie来做,然后写了一下trie的实现,两人都表示OK,然后问我trie还能有啥优势,我说可以实现type suggestion,两人对此感到OK.

2.2 有一个grid,比如3*3, 然后每一个node与周围的node都有两个pointer相连,问从A走三步可以有哪些走法,因为可以回头,所以就不需要hashtbale,然后就直接DFS就可以,我写了一下,两人表示OK,然后又问了一下时间复杂度啊啥的,我都答上来了.

总结一下,我觉得我面得蛮不多的,基本上没有出现大的卡顿在做题时,基本写出来的code也都不需要改进,算法上用trie也是准备到的,溜得很,题目也基本不难,自我感觉不错,然后还是碰到了两轮游,真是不开心,所以在拒信来之前发一发面经,也算把这事了结了...

补充内容 (2016-5-13 07:53):
面得不错的*

补充内容 (2016-5-14 00:57):
还有就是问了能不能把plus这个operator给overload,我说可以啊..还有就是问了需要不需要把plus变成static,问了static能不能继承,我说不能,然后他说能不能有办法来把他变成能继承的,一般来说面试官这样说都是在y...

补充内容 (2016-5-14 00:59):
但事实上他没有引导,这是在给我下套,他说可以用virtual static来让他可以继承不,我说虽然java中没有virtual这个用法,不过你说可以就可以吧, 然后后来发现virtual static也是不存在,烙印真是太可恶了....
7条回复