一亩三分地论坛

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

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

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

[复制链接] |试试Instant~ |关注本帖
michael.lizhixu 发表于 2015-3-12 05:29:40 | 显示全部楼层 |阅读模式

2015(1-3月) 码农类 硕士 全职@Drawbridge - 猎头 - 技术电面 Onsite |Other

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

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

x
昨天刚刚onsite这家回来,发个面经顺便为下周的谷歌onsite攒个人品。

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

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

第一次电面:
我面的是前端职位。第一个电面是前端组的老大,Linkedin资料显示从1991年就开始当程序员。电话打过来不问简历,介绍一下自己接着开始问:“你会HTML里面的某某某框架么?”我就蒙了,“......不会。”然后又解释半天说作为一个new grad只懂自己做过的东西bla bla。他说:“好的,没关系。”然后又开始问:“告诉我CSS里面的四种positioning是什么。给你一个提示,其中一个是absolute。”我就傻了,赶紧这边打开W3C网站查,然后说了一下,包括每种的含义也说了一下。他表示满意(事实证明电面时候及时查资料是多么重要)。然后说开始写代码(妈蛋不是说phone screen么)。倒是不难,让写一个树。不是二叉树,是圣诞树。比如:
输入3,输出:
    *
  ***
*****. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
   *
即三层树叶加一根树桩。
本来让我用Javascript写,我说更prefer Java,就用Java写了个大概。确定对了之后他又要求精简代码,比如把输出空格和输出星号的部分放在同一个helper函数里。确定没问题之后,就开始问问题环节了。这哥们真的能侃,我问他之前常用的两三个问题,他能自己扯出五六个来。

第二次电面:. more info on 1point3acres.com
之后大概过了一天,安排第二次电面,大概在第一次电面的一周以后。
这位是个国人大哥,看Linkedin还是清华毕业。一上来就告诉我他准备了三道题要问。
第1题:给一个数组,要求reverse the array。直接用双指针一头一尾开始交换了,两分钟秒掉;
然后开始问第2题,悲剧就开始了:. 1point3acres.com/bbs
他说:“我们要‘shift an array, like this:
1,2,3,4,5 >> 3
3,4,5,1,2”. 鍥磋鎴戜滑@1point 3 acres
要求输入为数组和一个数k,输出迁移之后的数组。

我一看这还不容易,把数组里的数整体前移k - 1位就好了。用三分钟傻乎乎的写了一个先swap(0, k - 2),然后swap(k-1,array.length - 1),然后整体swap的方法。还喜滋滋的说“写完了!”
大哥一看,不对,我再给你写一个例子:
1,2,3,4,5 >> 2
4,5,1,2,3

然后我不知道那天状态不对脑子怎么抽风,写了半个多小时一直在纠结这个东西,没搞清原来是向右平移k位。直到最后也没写出来正确的版本。后来再回来看,尼玛这么简单我都犯傻了。. Waral 鍗氬鏈夋洿澶氭枃绔,
其实就是Leetcode最近刚加的新题“Rotate Array”。虽然没做过,但是这么简单的题真的是我蠢得自己都不认识了(感觉瞬间被色娃附体)。

就这样,本来要问三个题结果才写出来一个。感觉挂定了。除了骂自己太傻逼没调整好状态准备电面之外谁也怨不得。万万没想到,过了几个小时收到HR的邮件,通知让定Onsite的时间。


这里实在要大力感谢这位国人大哥的见义勇为,真是惭愧惭愧。如果有机会拿offer的话定当当面重谢。

之后继续着我的作死之路。因为19号就谷歌onsite了,我觉得去这个公司onsite一趟一整天的时间就浪费了,不如拖到谷歌之后。我就发邮件跟她说这两周比较忙,能不能等到19号之后。
结果,第二天早晨,再次接到那个英音猎头的电话,苦口婆心地劝我:“这家公司的revenue提升非常快,而且现在只有这一个职位。本来的bar就很高,如果你要是拿到onsite拖几天的话,被别人顶了就根本轮不到你了。你现在马上把其他的事情拖后,给HR发邮件说你下周可以去onsite,越早越好。”我这才如梦惊醒赶紧给HR发邮件,一直到下午不回我我又直接打电话过去,幸好HR看到邮件之后就把我的onsite安排在今天了。
再次证明了“不作死就不会死”。

Onsite:. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
HR给我发的邮件说是四轮。
第一轮是个印度小哥。
第一个题是“用Array实现一个Queue”。虽然很简单但是竟然在个别细节出现了失误,跟他探讨之后才写对,真是太渣了。看来基本数据结构的实现还是要自己动手多写几遍。
之后问我会不会什么JS的框架。又问我会不会数据库。然后开始上数据库的题:
数据库里要有employee, manager和department的信息,设计这个数据库。. Waral 鍗氬鏈夋洿澶氭枃绔,
我就设计三个表,然后他问主键是什么,发现设计不合理又改进了一些。之后他问:“来写个query吧,给出手下有5个employee以上的manager的名字。”
我当时有点蒙,因为好久好久没写过sql语句了。其实这个很简单,但是也没有完全写出来。他说OK,就这样吧。

第二轮是个韩国小哥。
只问了一个题(不知道是不是我花的时间太多没给他出第二题的机会)。
实现一个函数。
输入:"priistiistoomdd"
输出:i, i, o, d. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴

输入:"priiistiistoomdd"
输出:i

我刚开始思路也想错了。开始想用一个HashTable,把连续同字母的字符串的长度存起来。对每一个之前遇到的字符保存在一个candidat里并保存其连续出现的次数count。Hashtable的key是这个字符串的字幕,value是其最长长度。遇到一个跟candidate一样的字符就count++,如果不一样,就直接把candidate和count存进hashtable里。当然每一步都要判断是否之前已经存过这个字母并且存的count小于当前的count。另外保存一个最长的长度,全部扫描一遍之后再把跟最长长度相同长度的字母输出。他说:“好,那你把第一个例子跑一遍看看输出。我就写了一下:输出是i,o,d。这个时候粗心得根本没跟他给的输出比较,就直接问他对不对。
他一看:“好,你写吧。”
-google 1point3acres
花半天写了一黑板。他说,好,你再跑一遍第一个例子我看看。跑完之后跟我说:“不对啊,这儿要输出两个i。”我一看,卧槽,全白写了。然后一想,如果我把HashTable的value换成ArrayList呢,把每一个连续同字母的字符串的长度都放进ArrayList里。比如对于i就存两个值:2,2。. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
他说那也不对,如果后面那两个i放在最后呢,你应该输出"i,o,d,i”,你这个做法只能一次把两个i一块输出出来了。
我一时有点傻眼。我就问他:“是不是我用hashtable的方向就不对?”他说:“没事,你再想想吧。”看来是不肯给提示。

然后我突然想起来,其实用一个数组就好了,每一位存以当前字母为尾的连续同字母的字符串的长度,并保存一个最大值。之后再遍历一遍把等于最大值的位置的字母输出就好了。
他说:“好,你写吧。”


把黑板全擦掉吭哧吭哧又写满了一遍之后。他说:“嗯,差不多。但是你这个方法必须遍历两遍。你能不能只遍历一遍呢?
我说:”那每次如果遇到存的连续同字母的字符串长度大于维护的最长长度的话,直接把之前的存结果的ArrayList抛弃直接建一个新的把这个字母放进去。”
他说:“好,你写吧。”
我又吭哧吭哧把这一块改了。. from: 1point3acres.com/bbs
这里我的写的当指针指到str.length() - 1的时候,直接更新数组的最后一个值。代码上就是把之前的包括判断与维护的最长值的比较、更新数组的操作重新写一遍。.鏈枃鍘熷垱鑷1point3acres璁哄潧
然后他说:“你能不能处理一下把这两段相同的代码合并一下?”
我纠结了半天最后也没改出来。然后他就差不多放弃了。


第三轮就是之前第一次电面我的前端组老大。他说:“我比较重视solving problem的能力。”
出的题是这样:假设我们有一个放一种object叫“tips”的数组(他用js演示的例子)。他们有各自的名字和权重。你能不能写一个函数,随机输出一个tip,但是权重越高的输出的概率越大?. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
我突然发现自己对于这种概率以及随机数的题都没看过。顿时感觉没什么思路。我跟他说“我从来没做过这种题。”他显得很开心,“good,就要考察你这种解决问题的能力。”
我问他有没有什么hint可以给。他说:“你先思考一下如果不考虑权重的话,让他们等概率输出应该怎么做?”我说:“用类似Math.random()乘以数组长度的方法吧。”
然后我想了一会,他又给了一个提示:”假如有两个气球,一个是另一个体积的两倍。那你击中大气球的概率是小气球的多少倍呢?”.鐣欏璁哄潧-涓浜-涓夊垎鍦
我瞬间就想起来,可以类比成一条数轴,把这些数按照大小来把这些数轴分割成不同的长度,然后把一个点等概率往下扔的话,肯定落到长度更长的区域的概率更大。我就说:“可以先把这些tips的权重取出。然后建立一个数组,里面类似计数排序其中的一部,数组的每一位存当前位之前所有权重的总和。
例如我们有1,1,3,6,5的话,数组里就可以是1,2,5,11,16。这样先按之前说的求出随机数,然后遍历新建立的数组找到第一个比它大的数,然后返回这个数的索引,则就是我们要返回的第几个tips。
刚开始我还说要先排序一下。他说我们根本不用排序,直接这样做操作就可以了,对结果没有影响的。
这一轮就算结束了。然后他介绍了很多他们公司的前景,包括跟我说第四轮是跟公司的VP谈,不会有technical问题只是behavior问题了。我松了口气,终于差不多问完了。


之后我在房间等着,有个人敲敲门进来了,好像是个国人小哥(事后知道他是台湾的)。进来握握手跟我说:“你平常用java的吧,来我们开始做题吧。”
我赶紧问他:“之前面试官告诉我只有四轮啊,最后一轮没有技术面了啊,要跟VP谈的啊。”他跟我说:“哦VP正在开会,所以我就问你道题。”然后又补充道:“我们面试有时候六轮有时候四轮,我也不知道怎么安排的。”我就想:“今天怎么这么走运。”
不过事实证明确实很走运,台湾小哥确实很放水了。. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
第一个题是数组里面找第k小的数,故作沉吟状之后先给出用PriorityQueue的方法,然后再故作沉思状之后给出Quick Selection的方法。三分钟写完,不过尼玛竟然还有点小bug,而且时间复杂度还给忘了!跟他讨论和给出各种演示提示之后在想出来。我也是够了。
第二道题更是令人发指了,输入一个数n输出所有小于n的质数!这位小哥真的是太厚道了。给出brute force方法之后问我能不能优化,就是对于每一个数判断是质数的话就放进一个arraylist,下一个数直接除这个arraylist里面的数就好了。他很满意。.1point3acres缃
然后就是各种跟这个羞涩的台湾小哥寒暄,不再细说。
.1point3acres缃

之后终于是VP来面的第五轮,一些很基本的behavior问题就不细说了。

. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
这几次面试的经验教训是:
1.面试之前一定要高度重视,把自己的大脑活跃度调整到最佳状态!否则会各种犯蠢的错误(正像色娃教导我们);
2.面试官给出例子的话一定要多写几个例子确保自己明确了题意,就像我第二次电面那个例子,如果之前就躲让他写几个例子就不会理解错了;
3.有了大概的想法之后一定要带入面试官给的输入走一遍跟输出比较一下,确定自己没有任何疏忽纰漏;. 1point3acres.com/bbs
4.如果有了想法就一定要跟面试官讲一遍。这次我发现只要面试官听你说,你如果讲一句他觉得对就一般会“ok”,如果没有这一声,说明跟他想的有偏差,然后停下来及时调整,避免自己讲到最后发现前面有错误还得重来;
5.Never give up,遇到不会的问题可以去问面试官要提示,或者拿不同的方向(例如HashTable,Quicksort等等数据结构和算法)去试探他。这个在你没有思路的时候非常重要


总体说来,跟面试官的交流是最重要的部分,一定要保证面试官随时跟上你的思路,或者你跟上面试官的思路。如果一旦哪一方跟不上随时停下来。毕竟面试是跟人打交道,基本的交流策略还是要有的。 鏉ユ簮涓浜.涓夊垎鍦拌鍧.


写了这么多,希望对别的同学有帮助。. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷

评分

4

查看全部评分

本帖被以下淘专辑推荐:

  • · 前端|主题: 1, 订阅: 0
这里没有鱼 发表于 2015-3-23 13:29:26 | 显示全部楼层
求教,你申的是啥职位呢?感觉还要会css的啥是为什么。。。我要面的是SE。
回复 支持 反对

使用道具 举报

 楼主| michael.lizhixu 发表于 2015-3-24 01:21:48 | 显示全部楼层
这里没有鱼 发表于 2015-3-23 13:29
求教,你申的是啥职位呢?感觉还要会css的啥是为什么。。。我要面的是SE。

我当时面的是前端职位......
回复 支持 反对

使用道具 举报

YY大帝 发表于 2015-3-24 01:40:06 | 显示全部楼层
这里没有鱼 发表于 2015-3-23 13:29
求教,你申的是啥职位呢?感觉还要会css的啥是为什么。。。我要面的是SE。
.1point3acres缃
请问你面的是啥,java还是hadoop?
回复 支持 反对

使用道具 举报

Kidsplay 发表于 2016-1-18 06:28:21 | 显示全部楼层
请问最后给LZ offer了吗?或者feedback怎样?谢谢
回复 支持 反对

使用道具 举报

本版积分规则

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

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

关闭

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

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

custom counter

GMT+8, 2016-12-10 13:50

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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