谷歌面经 - 未名空间(mitbbs.com)



谷歌面经 - 未名空间(mitbbs.com)

在国内面试的,两轮电面 + 四轮onsite,已挂

一方面说是正逢校招,北京这边的面试官资源比较紧张,另外应该也是中间面的不太好
,所以整个过程历经了快两个月,刚开始是挺焦急地等着下一步的消息,后来也淡定。
终于在这周面完最后两轮后,并于周五晚收到了HR的拒信,算是一个了结。

电面一: 安排的是硅谷的面试官,时间为北京早8点。结果从7点多开始等到9点都没有
接到电话,只好联系了HR,HR很快联系到了面试官并道歉说面试官有事给错过了,问是
接着面试还是另外安排一个时间,并说面试官马上要出差,另外安排的话可能要一两周
之后了。当时想反正都等了一个多小时了,就接着面吧。很快面试官就打了电话过来,
然后直接扔了一道题过来。 题目是:给两个以字符串形式表示的大整数,求其和。现
在回头看,其实这是一道挺普通的题目,但当时就不知怎么没能一开始就理清两个大数
的正负等不同情况了。所以最后是基本做了出来,但中间改了又改,代码很乱,存在不
少冗余,时间花得也比较长。。。

结束之后,整个人情结很低落,也懊恼万分,感觉人生的第一次谷歌面试就要至此结束
了。

大约一周左右,HR给打电话,问上次面得怎样,我回答不好,他说是的,并说让他考虑
下是否安排另一次电面。在此得再次感谢HR(以及帮忙内推的师兄,后来了解到的)很
快地很帮我安排了下一次电面,让这次谷歌面试之行得以继续。

电面二:也是硅谷的面试官。这次倒蛮顺利的,一上来开始聊了几分钟项目,然后开始
做题。第一道是二叉树相关的,假定允许交换二叉树中任意节点下的左子树与右子树,
然后给定两棵二叉树,判断它们之间是否满足这种交换关系。第二道是括号匹配验证问
题(算是leetcode的原题,虽说我是第一次电面后才开始看 待字闺中,并知道
leetcode 的,当时还没刷到这一题)。最后还有几分钟的时间就是问了些问题。

onsite 四轮,分为两次,每次两轮。中间间隔了半个多月。因为签了协议,就不细说
了,主要是题目有:

onsite 一 & 二
1. 近似字符串匹配。比如给定一个长串(10G以上的量级),再给定一个短串(比如长
度为10),然后允许最多有两个字符的匹配误差,让找出长串中所有的匹配位置。(自
己觉得是�u在了这题。面试过程中一直没找到正确的思路,面试官开始试图给了一些引
导,但无奈没找到他所想的方向,后来他也有些不知道如何引导,因为他觉得除了答案
好像也无法给其它提示了。感觉就是两人都很无奈:他觉得都提示得那么明显了,你怎
么还不能想到呢,我自己也很着急,觉得某个点没想到,想到了就会简单,但到底是哪
个点呢。。。面试官也看他的code review去了)
2. 找出两链表的交叉节点。(经典老题,但因为前一轮的题目没时间做完,这时心里
比较着急,就急切地先把代码写了出来,并没有注意代码的精练。写完给面试官看时,
自己也指出一处冗余了,并说了是因为赶时间的原因,平时的话自己肯定还会再
refactor。不过从后来HR的反馈来看还是在这里失了分。)
3. 在一个正整数的数组中找出不在数组中的最小正整数。(leetcode原题,但我又是
在面试后才发现的。。。不过感觉答得还好,而且当时自己是想了另一种不是交换元素
的思路。怪不得当时面试官对我的思路想了好一会,最后确认是可行的。)

onsite 三 & 四
4. 设计 api 并用 mutex 实现一个读写锁。
5. 设计 api 并实现所有操作都为O(1)的 LRUCache.
6. 用 C/C++ 的基本语言特性判断某个系统上栈的生长方向。

这几题除了LRUcache那题之前有看过,其它都没接触过,但感觉现场答得还可以吧。只
是担心可能无法挽回 onsite 1& 2 的一般表现,果然两天之后收到了拒信。

最后说下自己对这次谷歌面试的感想:就是后来从这里也了解到对于FLAG等注重算法的
公司,大家都会在面试之前刷题。所以至少感觉谷歌面试官对于solution的要求比较高
,方法要是最优的,代码得是清晰无死角的。老实说,如果是一个完全没见过的新题目
,要做45分钟内做到一点,还是挺挑战的。因为有时光是想想有哪些需要注意的Corner
case 都要花不少时间。不过好像这也是当前的风气以及大势所趋,所以想去这些公司
的同学,在投简历面试之前,还是要多花些时间做题,做好准备,哪怕没能遇到原题,
至少在面试时心态上也会有底气得多。

呵呵,��哩��嗦写了这么,谢谢你的耐心看完,也希望能所有所帮助。

========

另外,版上有对国内amazon了解的同学吗?现在手上有一个sde的口头offer,做
payment 相关的。自己毕业后在国内ms做传统软开,两年多了,之前项目比较动荡,接
下来可能也会有变化。所以也想趁些换个环境做一些新的东西,扩展下自己,顺便增点
工资,不知那边值得跳过去吗?谢谢!

Read full article from 谷歌面经 - 未名空间(mitbbs.com)


No comments:

Post a Comment

Labels

Algorithm (219) Lucene (130) LeetCode (97) Database (36) Data Structure (33) text mining (28) Solr (27) java (27) Mathematical Algorithm (26) Difficult Algorithm (25) Logic Thinking (23) Puzzles (23) Bit Algorithms (22) Math (21) List (20) Dynamic Programming (19) Linux (19) Tree (18) Machine Learning (15) EPI (11) Queue (11) Smart Algorithm (11) Operating System (9) Java Basic (8) Recursive Algorithm (8) Stack (8) Eclipse (7) Scala (7) Tika (7) J2EE (6) Monitoring (6) Trie (6) Concurrency (5) Geometry Algorithm (5) Greedy Algorithm (5) Mahout (5) MySQL (5) xpost (5) C (4) Interview (4) Vi (4) regular expression (4) to-do (4) C++ (3) Chrome (3) Divide and Conquer (3) Graph Algorithm (3) Permutation (3) Powershell (3) Random (3) Segment Tree (3) UIMA (3) Union-Find (3) Video (3) Virtualization (3) Windows (3) XML (3) Advanced Data Structure (2) Android (2) Bash (2) Classic Algorithm (2) Debugging (2) Design Pattern (2) Google (2) Hadoop (2) Java Collections (2) Markov Chains (2) Probabilities (2) Shell (2) Site (2) Web Development (2) Workplace (2) angularjs (2) .Net (1) Amazon Interview (1) Android Studio (1) Array (1) Boilerpipe (1) Book Notes (1) ChromeOS (1) Chromebook (1) Codility (1) Desgin (1) Design (1) Divide and Conqure (1) GAE (1) Google Interview (1) Great Stuff (1) Hash (1) High Tech Companies (1) Improving (1) LifeTips (1) Maven (1) Network (1) Performance (1) Programming (1) Resources (1) Sampling (1) Sed (1) Smart Thinking (1) Sort (1) Spark (1) Stanford NLP (1) System Design (1) Trove (1) VIP (1) tools (1)

Popular Posts