登录
  • #美国面经
  • #码农类general
  • #面试经验
  • #drawbridge

Drawbridge面经总结(两次电面+onsite)

michael.lizhixu
6673
4
[backcolor=rgb(242, 242, 242)]昨天刚刚onsite这家回来,发个面经顺便为下周的谷歌onsite攒个人品。[/backcolor]

[backcolor=rgb(242, 242, 242)]这家公司是做在线广告的,主要做的层面是在不同的平台,比如desktop,网站,mobile平台等等根据分析数据从中辨认出同一个用户在不同平台的账户,从而个性投放广告。据面我的面试官说,他们这个业务正在跟谷歌竞争,而且谷歌没有做这方面的技术,所以市场还是很大。[/backcolor]

[backcolor=rgb(242, 242, 242)]其实我也忘了是怎么投的,只知道有一天一个英国口音的猎头打电话给我让我回复这个公司HR的电面确认邮件,就稀里糊涂的开始了。[/backcolor]

[backcolor=rgb(242, 242, 242)]第一次电面:[/backcolor]

[backcolor=rgb(242, 242, 242)]我面的是前端职位。第一个电面是前端组的老大,Linkedin资料显示从1991年就开始当程序员。电话打过来不问简历,介绍一下自己接着开始问:“你会HTML里面的某某某框架么?”我就蒙了,“......不会。”然后又解释半天说作为一个new grad只懂自己做过的东西bla bla。他说:“好的,没关系。”然后又开始问:“告诉我CSS里面的四种positioning是什么。给你一个提示,其中一个是absolute。”我就傻了,赶紧这边打开W3C网站查,然后说了一下,包括每种的含义也说了一下。他表示满意(事实证明电面时候及时查资料是多么重要)。然后说开始写代码(妈蛋不是说phone screen么)。倒是不难,让写一个树。不是二叉树,是圣诞树。比如:[/backcolor]

[backcolor=rgb(242, 242, 242)]输入3,输出:[/backcolor]

[backcolor=rgb(242, 242, 242)] *[/backcolor]

[backcolor=rgb(242, 242, 242)] ***[/backcolor]

[backcolor=rgb(242, 242, 242)]*****[/backcolor]

[backcolor=rgb(242, 242, 242)] *[/backcolor]

[backcolor=rgb(242, 242, 242)]即三层树叶加一根树桩。[/backcolor]

[backcolor=rgb(242, 242, 242)]本来让我用Javascript写,我说更prefer Java,就用Java写了个大概。确定对了之后他又要求精简代码,比如把输出空格和输出星号的部分放在同一个helper函数里。确定没问题之后,就开始问问题环节了。这哥们真的能侃,我问他之前常用的两三个问题,他能自己扯出五六个来。[/backcolor]

[backcolor=rgb(242, 242, 242)]第二次电面:[/backcolor]

[backcolor=rgb(242, 242, 242)]之后大概过了一天,安排第二次电面,大概在第一次电面的一周以后。[/backcolor]

[backcolor=rgb(242, 242, 242)]这位是个国人大哥,看Linkedin还是清华毕业。一上来就告诉我他准备了三道题要问。[/backcolor]

[backcolor=rgb(242, 242, 242)]第1题:给一个数组,要求reverse the array。直接用双指针一头一尾开始交换了,两分钟秒掉;[/backcolor]

[backcolor=rgb(242, 242, 242)]然后开始问第2题,悲剧就开始了:[/backcolor]

[backcolor=rgb(242, 242, 242)]他说:“我们要‘shift an array, like this:[/backcolor]

[backcolor=rgb(242, 242, 242)]1,2,3,4,5 >> 3[/backcolor]

[backcolor=rgb(242, 242, 242)]3,4,5,1,2”[/backcolor]

[backcolor=rgb(242, 242, 242)]要求输入为数组和一个数

本帖隐藏的内容需要积分高于 188 才可浏览,点击前往一亩三分地论坛阅读

里就可以是1,2,5,11,16。这样先按之前说的求出随机数,然后遍历新建立的数组找到第一个比它大的数,然后返回这个数的索引,则就是我们要返回的第几个tips。[/backcolor]


[backcolor=rgb(242, 242, 242)]刚开始我还说要先排序一下。他说我们根本不用排序,直接这样做操作就可以了,对结果没有影响的。[/backcolor]

[backcolor=rgb(242, 242, 242)]这一轮就算结束了。然后他介绍了很多他们公司的前景,包括跟我说第四轮是跟公司的VP谈,不会有technical问题只是behavior问题了。我松了口气,终于差不多问完了。[/backcolor]

[backcolor=rgb(242, 242, 242)]之后我在房间等着,有个人敲敲门进来了,好像是个国人小哥(事后知道他是台湾的)。进来握握手跟我说:“你平常用java的吧,来我们开始做题吧。”[/backcolor]

[backcolor=rgb(242, 242, 242)]我赶紧问他:“之前面试官告诉我只有四轮啊,最后一轮没有技术面了啊,要跟VP谈的啊。”他跟我说:“哦VP正在开会,所以我就问你道题。”然后又补充道:“我们面试有时候六轮有时候四轮,我也不知道怎么安排的。”我就想:“今天怎么这么走运。”[/backcolor]

[backcolor=rgb(242, 242, 242)]不过事实证明确实很走运,台湾小哥确实很放水了。[/backcolor]

[backcolor=rgb(242, 242, 242)]第一个题是数组里面找第k小的数,故作沉吟状之后先给出用PriorityQueue的方法,然后再故作沉思状之后给出Quick Selection的方法。三分钟写完,不过尼玛竟然还有点小bug,而且时间复杂度还给忘了!跟他讨论和给出各种演示提示之后在想出来。我也是够了。[/backcolor]

[backcolor=rgb(242, 242, 242)]第二道题更是令人发指了,输入一个数n输出所有小于n的质数!这位小哥真的是太厚道了。给出brute force方法之后问我能不能优化,就是对于每一个数判断是质数的话就放进一个arraylist,下一个数直接除这个arraylist里面的数就好了。他很满意。[/backcolor]

[backcolor=rgb(242, 242, 242)]然后就是各种跟这个羞涩的台湾小哥寒暄,不再细说。[/backcolor]

[backcolor=rgb(242, 242, 242)]之后终于是VP来面的第五轮,一些很基本的behavior问题就不细说了。[/backcolor]

[backcolor=rgb(242, 242, 242)]这几次面试的经验教训是:[/backcolor]

[backcolor=rgb(242, 242, 242)]1.面试之前一定要高度重视,把自己的大脑活跃度调整到最佳状态!否则会各种犯蠢的错误(正像色娃教导我们);[/backcolor]

[backcolor=rgb(242, 242, 242)]2.面试官给出例子的话一定要多写几个例子确保自己明确了题意,就像我第二次电面那个例子,如果之前就躲让他写几个例子就不会理解错了;[/backcolor]

[backcolor=rgb(242, 242, 242)]3.有了大概的想法之后一定要带入面试官给的输入走一遍跟输出比较一下,确定自己没有任何疏忽纰漏;[/backcolor]

[backcolor=rgb(242, 242, 242)]4.如果有了想法就一定要跟面试官讲一遍。这次我发现只要面试官听你说,你如果讲一句他觉得对就一般会“ok”,如果没有这一声,说明跟他想的有偏差,然后停下来及时调整,避免自己讲到最后发现前面有错误还得重来;[/backcolor]

[backcolor=rgb(242, 242, 242)]5.Never give up,遇到不会的问题可以去问面试官要提示,或者拿不同的方向(例如HashTable,Quicksort等等数据结构和算法)去试探他。这个在你没有思路的时候非常重要[/backcolor]

[backcolor=rgb(242, 242, 242)]总体说来,跟面试官的交流是最重要的部分,一定要保证面试官随时跟上你的思路,或者你跟上面试官的思路。如果一旦哪一方跟不上随时停下来。毕竟面试是跟人打交道,基本的交流策略还是要有的。[/backcolor]

[backcolor=rgb(242, 242, 242)]写了这么多,希望对别的同学有帮助。[/backcolor]
4条回复
热度排序

发表回复