Google SDE Onsite 面经

不久前参加了google的面试,昨天刚刚拿到offer,来分享一下onsite面经。

一共面了5轮,每一轮的面试官感觉都很专业,很有亲和力,不会让人觉得有距离感。当时就特别期待加入这样的团队。

每一轮除了问些项目经历,就是问一些算法题和系统设计题。下面是面试中遇到的题目:

Onsite1 :
1.写一个函数来计算给定其当前状态的下一个状态(一次更新之后)
Follow up:如果电路板有100万行和列,如何扩展?

Onsite2:
1.门和墙给出一个使用这三个可能值初始化的m×n 2D网格。
-1 - 墙壁或障碍物。
0 - 门。
INF - Infinity是一个空房间。我们使用值2^31 - 1 = 2147483647来表示INF,因为您可以假设到门的距离小于2147483647。每个空房间填上距离最近门的距离。如果不可能到达门口,应该填入INF。

2.搜索二维矩阵
题目描述:http://www.lintcode.com/zh-cn/problem/search-a-2d-matrix-ii/
参考答案:http://www.jiuzhang.com/solutions/search-a-2d-matrix-ii/

Onsite3:
1.如何建立HTML文档
2.检查树中的两个文档是否具有相同的内部文本提取树中的所有文本,然后进行比较
Follow up:使用迭代器并使用迭代器进行比较

Onsite4:
1.移动零
题目描述:http://www.lintcode.com/zh-cn/problem/move-zeroes/
参考答案:http://www.jiuzhang.com/solutions/move-zeroes/

2.前序遍历和中序遍历树构造二叉树

题目描述:http://www.lintcode.com/zh-cn/problem/construct-binary-tree-from-preorder-and-inorder-traversal/
参考答案:http://www.jiuzhang.com/solutions/construct-binary-tree-from-preorder-and-inorder-traversal/

Onsite5:
1.如何设计Google搜索建议(系统设计)