简单分享一下Google电面的面试经验。电面一共有两轮。其实算法题目出得都不太难,可惜自己当时基础不过关,在第二轮电面就败下阵来。
电面1
一面互相简单自我介绍之后就直接开始做题。
题目1:给出一组整数,计算有多少两个数组成的对(要求对不重复)大于一个特定的值
LintCode原题:http://www.lintcode.com/zh-cn/problem/two-sum-greater-than-target/
参考答案:http://www.jiuzhang.com/solutions/two-sum-greater-than-target/
follow-up:有多少三个数的组合大于特定的值
题目2:LintCode: 3 sum
LintCode原题:http://www.lintcode.com/zh-cn/problem/3sum/
参考答案:http://www.jiuzhang.com/solutions/3sum/
电面2
二面面试官很简单地介绍了一下自己和他的team。然后开始问我简历的问题,学历背景,项目经历等。混合着问了一些技术性问题,之后就开始进行coding。
题目:给出一个二叉搜索树,写出一个方法,求出树中的第k小的数
LintCode原题:http://www.lintcode.com/zh-cn/problem/search-range-in-binary-search-tree/
参考答案:http://www.jiuzhang.com/solutions/search-range-in-binary-search-tree/
follow up:如果BST是经常需要修改的(插入,删除操作),怎么求出第k小更改频率的数?如果优化求第k小的数
这道题目我做了很久,写完了还发现有逻辑错误,发现的时候时间已经到了,很难过。