Google 电面 7.9

原帖地址:一亩三分地

刚结束Google电面,报下面经。

面试官是白人妹子,啥都没问就开始做题了。

1.1. 给一个数n,如果能被3整除就print Func3(n),如果能被5整除就print Func5(n),如果能被3和5整除就print Func3(Func5(n)). 我用最简单的if-else写了下。
1.2. follow-up, 把上面的代码改成general的,如这时有{3,5,7},能被3和7整除的话就print Func3(Func7(n)),能被3,5,7都整除print Func3(Func5(Func7(n)))……

2. Big Integer + 1, big integer用list of characters表示。这个leetcode原题,写的时候差点出bug,在给面试官解释的时候发现赶紧改过来。

3. 设计一个电话本系统,实现三个功能:查找号码 boolean isTaken(),添加号码 void takeNumber(),返回一个不在电话本里的没人用的号码 number giveMeANumber()。我一开始说用HashMap,这样前两个函数的复杂度都是O(1),第三个是O(n)。面试官说能不能优化第三个函数,我说用BST,每个节点多存一个value记录这个节点下还有几个available的号码,giveMeANumber()的实现只要沿着value>0的node往下找就行了。这样三个函数的复杂度都是O(lgn).

感觉这几道题有点放水了,求人品,希望顺利通过。