提早一天到达。google方面还是非常贴心的,安排了住宿的地方,条件不错,提供早餐,对google的崇拜又添了一分。可惜当晚不能好好享受google提供的住宿服务,虽然之前已经把Lintcode上的题目好好刷了一些,但依旧不放心,利用晚上的时间又过了一下几道被自己重点标记的难题。十一点一到,就开始逼自己睡觉,以求第二天能有最佳的状态面对面试。
第二天早早出门,比预计时间早到了20分钟。到达面试地点门口首先会有人让你check in,check in 之后和门口的负责小哥闲聊了一会,有一个招聘小姐姐来带着去了面试的会议室。因为此时离约定的时间还有十来分钟,面试官还到。等待的时候观察了会议室,发现有一个白板,大约是用来写程序的,但是感觉较小,决定一会程序写的小点,够看就行。等待中途,招聘小姐姐还贴心的给倒了水。
Onsite 1
面试官差不多是踩着点来的。是个印度小哥,年纪不是很大,但口音略重。刚开始就随便问了一些简历上的东西,比如我写着擅长C++,那么对我来说是如何定义擅长一类编程语言的?然后让我简单介绍对我来说印象最深的一个项目。期间好几次有点听不清楚他说的内容,问了好几次sorry,所幸面试官颇具耐心。大约十多分钟之后就进入了算法考察环节。
1、 子数组之和
Lintcode原题链接:http://www.lintcode.com/zh-cn/problem/subarray-sum/
Solution链接:http://www.jiuzhang.com/solution/subarray-sum
听到题目的时候蒙了,因为仅是Lintcode上难度标识为简单的题。很快写完,仔细检查、确定是bug-free后就请求查验。无惊无险,过。
2、 编辑距离
随机给出两个不同的数字组合,通过插入、删除、替换三种操作对其中一个字母组合进行操作,使其与另一个字母相同,求最小操作数。
在lintcode上有类似的题目,因为做过的时间距离略长,印象不是很清晰,凭着逻辑又重写了一遍。但被指出存在bug,改过。
Lintcode原题链接:http://www.lintcode.com/zh-cn/problem/edit-distance/
Solution 链接:http://www.jiuzhang.com/solution/edit-distance
最后问我还有什么问题,就问了他的日常工作情况。他简单给我介绍了下自己的日常,顺便表达了对编程的真爱。
一面结束。
Onsite 2:
中间休息一会之后,第二个面试官就来了,是一个很漂亮的白人姐姐,说话的声音也很好听,不过做事颇有雷厉风行之势。一上来就扔给我一道“跳跃游戏”的算法题,让我讲思路。
Lintcode原题链接:http://www.lintcode.com/zh-cn/problem/jump-game/
Solution 链接:http://www.jiuzhang.com/solutions/jump-game/
这道题目我用动态规划的方法来做的,花了一点时间整理思路,给出算法。当然,这道题目也可以用贪心方法来做,由于时间有限并没有使用。之后就是编程。
写的时候觉得算法方面还可以改进以提高时间复杂度,所以临时改了一些地方,最后出来的程序比之前表述时在时间复杂度上提升了一些,感觉白人姐姐还是挺满意的。后来又在白人姐姐的引导下对时间复杂度进行了进一步的修正及空间复杂度的改进。
二面结束。
二面结束时差不多到了饭点,随面试官去了一个大餐厅,体验了一把google的伙食,凭心来说,不好不坏。吃饭的时间和面试官讨论了很多,从对算法的理解到谷歌给这个世界带来的变化,一直在乱侃。饭后休息了一下,就开始第三轮面试
Onsite 3:
这一轮的面试官是一个亚洲的中年男子,有点像中国人,非常nice。先是很详细的问了我简历上写的两个项目情况。和之前电面问的问题比较像,都是技术方向的,所以答的不错。然后就是算法。问了“链表排序”问题。
Lintcode原题链接:http://www.lintcode.com/zh-cn/problem/sort-list/
Solution 链接:http://www.jiuzhang.com/solutions/sort-list/
这道题目理论不难,但写代码时我依旧留了一个bug没检查出来,被面试官提点之后改正。之后被要求写test cases。总的来说没什么大问题。
Onsite 4:
面试官是一个年纪稍长的印度人,口音较第一个印度小哥好点,至少交流无障碍。首先,简单就我简历上的内容问了几个基础算法概念题,之后就直入主题。
Android手机手势解锁的所有可能性,其中要求至少使用4个关键点,当使用的三个点可连成一条线时,该设置无效。
这个问题用二叉树的方法可进行处理,只考虑图形的结构,不考虑构成图形各点的数值。
花了大约二十来分钟给出算法,可惜之后被面试官指出代码有bug三次,所幸每次都能较快找到bug并且处理,虽然被喊错三次,但面试官对我总体完成速度依旧较满意。
之后面试官看时间还有五分钟,就问我还有什么问题。问了他们组的主要工作内容。面试官特别自豪的和我讲了很久,感觉google招的人都是真心爱好自己的工作,特别棒。
面试完出来尚早,离晚饭也还很远,感觉不是很累。对自己这一天的面试表现不算满意也不能说不满意,只能说发挥平平。目前已经接到通知,说一轮的Hiring committee已经过了,在等待下一步的结果通知。愿好运。
��