由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - G家onsite面经
相关主题
Facebook被拒,写个面经湾区公司店面
面经+一点个人体会google phone interview question
亚麻公司 校园面经Amazon电面面经(1面和2面)
有人知道怎么证明最短公共超序列问题是NP Hard 的么?谢谢!youtube, tripadvisor的onsite面经
常见的string hash function亚麻新鲜面经
遭遇老印interviewer...[update2 面经]第一次在此版求狗家bless
大文件去重复,有什么好办法么hash table的size为什么最好是个质数?
无穷的字符串流, 有限的内存, 如何快速的找出唯一一对 重复字符串?10分钟前的T家电面面经
相关话题的讨论汇总
话题: node话题: lastnode话题: null话题: 编程话题: ret
进入JobHunting版参与讨论
1 (共1页)
s***c
发帖数: 50
1
刚从G家onsite归来。新鲜面经奉上。
总共5轮,4轮technical interview, 一个thesis discussion。在technical里,有编
程题,有open design。我记得的问题有:
1. 编程题:一堆字符串。找longest common prefix。
我的方法就是找最短的字符串,对它的每个字符,逐个与其他字符串对应位置比较。(
求更好方法)
2. open question: 一堆文件,size差别极大( from KB to many GB). 找出所有内
容相同的文件。
3. 编程题: 有一个observer 类,监视另一个类foo 的成员变量的值,每当那个值被
修改,就要调用 该observer.updated() 方法。需要实现 foo.registerObserver(ob)
, foo.unregisterObserver( ob ), foo.changeValue( newvalue ). 要考虑thread
safe.
就是在register时把所有observer 链接到一个list里。在changeValue()里,逐个唤醒
observer。 要用lock保护对于这个链表的访问。
4. open question: 一个大型cluster 包括thousands of nodes. 需要定期
upgrade 每个server跑的 OS image (也就是重装). 如何设计一个方案加速该过程。
5. 编程题: 一个bst, 寻找第I小的值。 不用说了吧。
6. 编程题: 一个int array, 求每连续K个值的和。就是一个K大小的窗口沿着数组滑
动,求该窗口内数的和。
7. Open question: 一个sensor network有很多sensors, 一个server 定期query 每
个sensor的值。sensor may fail。如何让server 避免被block。
我的想法是把query()做成unblock 型的,一个sender thread 定期向每个sensor发送
请求,然后用一个接收thread来接收答复。在sender 发送请求时,如果上一轮的答复
还没有来,就认为该sensor坏了。
8. 一个圆,产生uniform分布的点。
这时已经很累了。只想到随机产生半径和角度。但是概率和每个半径所对应的面积相关
。我觉得 p( r === 感想:
这些题目大都没有版上的面经难,不知道为什么。
还有,每个面试官都会把白板上的内容拍照,输入电脑,作为feedback的依据。所以白
板编程一定要特别仔细,把它当成是要编译的程序来写。我写第一个编程题时没有意识
到,犯了点错误。大家一定注意。
祝大家都有满意的offer!
g*******e
发帖数: 61
2
bless
f*******t
发帖数: 7549
3
前排bless
感谢分享!
k****n
发帖数: 369
4
太感谢了!

suffix tree,不过真的要白板编么?能不能写下阿
key is to reduce disk access
if it is possible to keep it in memory, then first bucket files with sizes,
then inside the bucket use (MD5 => file) hash map.
ob)
thread
have no idea,求布道
生成正方形uniform分布的点,丢弃圆外面的点
笛卡尔坐标系就麻烦多了,距圆心距离不同概率不同
Open question好多,我最讨厌这种,谁知道面试官prefer什么答案阿

【在 s***c 的大作中提到】
: 刚从G家onsite归来。新鲜面经奉上。
: 总共5轮,4轮technical interview, 一个thesis discussion。在technical里,有编
: 程题,有open design。我记得的问题有:
: 1. 编程题:一堆字符串。找longest common prefix。
: 我的方法就是找最短的字符串,对它的每个字符,逐个与其他字符串对应位置比较。(
: 求更好方法)
: 2. open question: 一堆文件,size差别极大( from KB to many GB). 找出所有内
: 容相同的文件。
: 3. 编程题: 有一个observer 类,监视另一个类foo 的成员变量的值,每当那个值被
: 修改,就要调用 该observer.updated() 方法。需要实现 foo.registerObserver(ob)

v***n
发帖数: 5085
5
congs, baozi plz
x****1
发帖数: 118
6
bless!
我也是感觉别人的面经都比我的难,可能是看别人面经的时候不如面试的时候精力集中
w****r
发帖数: 245
7
看着都不难
第一个,不用找最小的,直接比就是了

ob)

【在 s***c 的大作中提到】
: 刚从G家onsite归来。新鲜面经奉上。
: 总共5轮,4轮technical interview, 一个thesis discussion。在technical里,有编
: 程题,有open design。我记得的问题有:
: 1. 编程题:一堆字符串。找longest common prefix。
: 我的方法就是找最短的字符串,对它的每个字符,逐个与其他字符串对应位置比较。(
: 求更好方法)
: 2. open question: 一堆文件,size差别极大( from KB to many GB). 找出所有内
: 容相同的文件。
: 3. 编程题: 有一个observer 类,监视另一个类foo 的成员变量的值,每当那个值被
: 修改,就要调用 该observer.updated() 方法。需要实现 foo.registerObserver(ob)

g*****i
发帖数: 2162
8
bless?楼主什么背景? fresh graduate吗?
第一题我觉得不需要完整的suffix tree,因为题目只要找longest prefix,所以就把每
个string的插入一次就可以了,还可以记录当前的longest prefix的长度来加速. 另外
linear suffix tree construction好像很复杂吧.
第二题如果文件在memory放不下怎么办呢?
第四题每个server的os image都一样吗?如果一样的话应该是类似找一个快速扩散的方法
第七题这种多线程题没经验的总觉得很麻烦啊,楼主说的unblock型是什么意思?

【在 k****n 的大作中提到】
: 太感谢了!
:
: suffix tree,不过真的要白板编么?能不能写下阿
: key is to reduce disk access
: if it is possible to keep it in memory, then first bucket files with sizes,
: then inside the bucket use (MD5 => file) hash map.
: ob)
: thread
: have no idea,求布道
: 生成正方形uniform分布的点,丢弃圆外面的点

k****n
发帖数: 369
9
对,我土鳖了,直接比就好了,keep当前的最长prefix

方法

【在 g*****i 的大作中提到】
: bless?楼主什么背景? fresh graduate吗?
: 第一题我觉得不需要完整的suffix tree,因为题目只要找longest prefix,所以就把每
: 个string的插入一次就可以了,还可以记录当前的longest prefix的长度来加速. 另外
: linear suffix tree construction好像很复杂吧.
: 第二题如果文件在memory放不下怎么办呢?
: 第四题每个server的os image都一样吗?如果一样的话应该是类似找一个快速扩散的方法
: 第七题这种多线程题没经验的总觉得很麻烦啊,楼主说的unblock型是什么意思?

w****r
发帖数: 245
10
第一个直接找
第二个不一定要放整个文件,MD5是不错的选择
第四个感觉就是让node自己定期去哪里下新image,然后自动重装,加速的话个人认为
是指整个系统被block的时间,比如可以在有些node更新中的情况下,其他node继续用
旧版本工作,用扩散的方法太容易出错。。实际中应该很少用
第七个要问很多问题,比如这个定期得间隔是多少,扫描一个sensor要多久,如果坏了
需要最慢多久探测到,判断错误的话有没有什么后果。这在实际应用中可能都有
requirement的,根据这些条件再设计具体
方法

方法

【在 g*****i 的大作中提到】
: bless?楼主什么背景? fresh graduate吗?
: 第一题我觉得不需要完整的suffix tree,因为题目只要找longest prefix,所以就把每
: 个string的插入一次就可以了,还可以记录当前的longest prefix的长度来加速. 另外
: linear suffix tree construction好像很复杂吧.
: 第二题如果文件在memory放不下怎么办呢?
: 第四题每个server的os image都一样吗?如果一样的话应该是类似找一个快速扩散的方法
: 第七题这种多线程题没经验的总觉得很麻烦啊,楼主说的unblock型是什么意思?

相关主题
遭遇老印interviewer...湾区公司店面
大文件去重复,有什么好办法么google phone interview question
无穷的字符串流, 有限的内存, 如何快速的找出唯一一对 重复字符串?Amazon电面面经(1面和2面)
进入JobHunting版参与讨论
s***c
发帖数: 50
11

第二个问题我也用了类似的回答。把文件按size分类。然后对同样大小的文件,用某种
编码计算signature。signature相同的就是内容相同。同时用hash表来加速signature
的匹配查询。可是那个面试官说任何编码都会有conflict,也就是不同内容生成相同的
编码。其实MD5的编码可以做到重复率低于硬盘故障率。

【在 w****r 的大作中提到】
: 第一个直接找
: 第二个不一定要放整个文件,MD5是不错的选择
: 第四个感觉就是让node自己定期去哪里下新image,然后自动重装,加速的话个人认为
: 是指整个系统被block的时间,比如可以在有些node更新中的情况下,其他node继续用
: 旧版本工作,用扩散的方法太容易出错。。实际中应该很少用
: 第七个要问很多问题,比如这个定期得间隔是多少,扫描一个sensor要多久,如果坏了
: 需要最慢多久探测到,判断错误的话有没有什么后果。这在实际应用中可能都有
: requirement的,根据这些条件再设计具体
: 方法
:

a********1
发帖数: 750
12
一个bst, 寻找第I小的值。 不用说了吧。
怎么做?要用order-statics给每个Node加上有多少left child的信息吗?还是in-
order 硬算
P**l
发帖数: 3722
13
zan
w****r
发帖数: 245
14
signature相同就读出来比较不行吗?

signature

【在 s***c 的大作中提到】
:
: 第二个问题我也用了类似的回答。把文件按size分类。然后对同样大小的文件,用某种
: 编码计算signature。signature相同的就是内容相同。同时用hash表来加速signature
: 的匹配查询。可是那个面试官说任何编码都会有conflict,也就是不同内容生成相同的
: 编码。其实MD5的编码可以做到重复率低于硬盘故障率。

y******n
发帖数: 47
15
感觉功力还是不行, 看着不难, 写起来还是花了好一阵功夫. lastNode用来处理i大于
树节点总数的情况, 也就是返回right most node.
int findith(Node *r, int i) {
assert(r != NULL);
assert(i > 0);
int k = i; Node *lastNode;
Node * ret = helper(r, k, lastNode);
return (ret != NULL) ? ret->value : lastNode->value;
}
Node *helper(Node *n, int& k, Node *& lastNode) {
if (n == NULL)
return NULL;
Node *ret = helper(n->left, k, lastNode);
if (ret != NULL)
return ret;
k--;
if (k == 0)
return n;
lastNode = n;
return helper(n->right, k, lastNode);
}

【在 a********1 的大作中提到】
: 一个bst, 寻找第I小的值。 不用说了吧。
: 怎么做?要用order-statics给每个Node加上有多少left child的信息吗?还是in-
: order 硬算

g****n
发帖数: 194
16
Google jobs:
http://jobguiding.com/it-jobs/it-companies/google.html

ob)

【在 s***c 的大作中提到】
: 刚从G家onsite归来。新鲜面经奉上。
: 总共5轮,4轮technical interview, 一个thesis discussion。在technical里,有编
: 程题,有open design。我记得的问题有:
: 1. 编程题:一堆字符串。找longest common prefix。
: 我的方法就是找最短的字符串,对它的每个字符,逐个与其他字符串对应位置比较。(
: 求更好方法)
: 2. open question: 一堆文件,size差别极大( from KB to many GB). 找出所有内
: 容相同的文件。
: 3. 编程题: 有一个observer 类,监视另一个类foo 的成员变量的值,每当那个值被
: 修改,就要调用 该observer.updated() 方法。需要实现 foo.registerObserver(ob)

y******n
发帖数: 47
17

> 6. 编程题: 一个int array, 求每连续K个值的和。就是一个K大小的窗口沿着数组滑
> 动,求该窗口内数的和。
每移动一次窗口,减去旧窗口第一个数,然后加上新窗口最后一个数? 是不是还有什么条
件?

【在 s***c 的大作中提到】
:
: 第二个问题我也用了类似的回答。把文件按size分类。然后对同样大小的文件,用某种
: 编码计算signature。signature相同的就是内容相同。同时用hash表来加速signature
: 的匹配查询。可是那个面试官说任何编码都会有conflict,也就是不同内容生成相同的
: 编码。其实MD5的编码可以做到重复率低于硬盘故障率。

r*******g
发帖数: 1335
18
第一个题,为何不是依次比较。
比如第一个和第二个的common prefix长度为10,第三个string就只需要和这个common
prefix比较,然后不断比较下去。
prefix就是长度的意思,比如abcxxxx,abdyyyy,结果就是ab?
第六题说的不是很清楚,有什么限制条件没有
Thanks.
d***n
发帖数: 65
19
先祝楼主好运~
最后一题sampling rejection应该可以吧。随机取在以圆直径为边长的正方形内的某一
点,如果这点在圆内输出,不在的话reject。
y******n
发帖数: 47
20
谢谢共享, 祝LZ好运!

【在 s***c 的大作中提到】
:
: 第二个问题我也用了类似的回答。把文件按size分类。然后对同样大小的文件,用某种
: 编码计算signature。signature相同的就是内容相同。同时用hash表来加速signature
: 的匹配查询。可是那个面试官说任何编码都会有conflict,也就是不同内容生成相同的
: 编码。其实MD5的编码可以做到重复率低于硬盘故障率。

相关主题
youtube, tripadvisor的onsite面经hash table的size为什么最好是个质数?
亚麻新鲜面经10分钟前的T家电面面经
[update2 面经]第一次在此版求狗家bless讨论几道google题(附个人答案)
进入JobHunting版参与讨论
P**********c
发帖数: 3417
21
这个方法不错。

【在 d***n 的大作中提到】
: 先祝楼主好运~
: 最后一题sampling rejection应该可以吧。随机取在以圆直径为边长的正方形内的某一
: 点,如果这点在圆内输出,不在的话reject。

g**e
发帖数: 6127
22
8. let rand() generates uniform distributed value between [0,1)
r = sqrt( rand() );
theta = rand() * 2 * pi;
x = r*sin(theta);
y = r*cos(theta);
return (x,y);

ob)

【在 s***c 的大作中提到】
: 刚从G家onsite归来。新鲜面经奉上。
: 总共5轮,4轮technical interview, 一个thesis discussion。在technical里,有编
: 程题,有open design。我记得的问题有:
: 1. 编程题:一堆字符串。找longest common prefix。
: 我的方法就是找最短的字符串,对它的每个字符,逐个与其他字符串对应位置比较。(
: 求更好方法)
: 2. open question: 一堆文件,size差别极大( from KB to many GB). 找出所有内
: 容相同的文件。
: 3. 编程题: 有一个observer 类,监视另一个类foo 的成员变量的值,每当那个值被
: 修改,就要调用 该observer.updated() 方法。需要实现 foo.registerObserver(ob)

s*****y
发帖数: 897
23
你好久不做题了。

【在 g**e 的大作中提到】
: 8. let rand() generates uniform distributed value between [0,1)
: r = sqrt( rand() );
: theta = rand() * 2 * pi;
: x = r*sin(theta);
: y = r*cos(theta);
: return (x,y);
:
: ob)

s***c
发帖数: 50
24

组滑
我就是这么做的。感觉面试官还满意。

【在 y******n 的大作中提到】
: 谢谢共享, 祝LZ好运!
s***c
发帖数: 50
25

common
第六题是说,一个int array,对每连续K个元素求和。好像没说什么限制条件。可能要
判断一下K>array size的情况吧。

【在 r*******g 的大作中提到】
: 第一个题,为何不是依次比较。
: 比如第一个和第二个的common prefix长度为10,第三个string就只需要和这个common
: prefix比较,然后不断比较下去。
: prefix就是长度的意思,比如abcxxxx,abdyyyy,结果就是ab?
: 第六题说的不是很清楚,有什么限制条件没有
: Thanks.

s***c
发帖数: 50
26

这个方法简单又有效。我当时弱智了就是想不到。。。

【在 d***n 的大作中提到】
: 先祝楼主好运~
: 最后一题sampling rejection应该可以吧。随机取在以圆直径为边长的正方形内的某一
: 点,如果这点在圆内输出,不在的话reject。

s*****y
发帖数: 897
27
那么用什么方法他才满意啊?

【在 s***c 的大作中提到】
:
: 这个方法简单又有效。我当时弱智了就是想不到。。。

m****t
发帖数: 555
28
这么简单的题,不知道要考查什么?

【在 s***c 的大作中提到】
:
: 这个方法简单又有效。我当时弱智了就是想不到。。。

g**e
发帖数: 6127
29
10点半下班回家还顺便做个题,我容易么…… 眼泪哗哗的啊

【在 s*****y 的大作中提到】
: 你好久不做题了。
p**********t
发帖数: 126
30
相关主题
Groupon 2面 面经面经+一点个人体会
被米群网给恶心到了亚麻公司 校园面经
Facebook被拒,写个面经有人知道怎么证明最短公共超序列问题是NP Hard 的么?谢谢!
进入JobHunting版参与讨论
A***M
发帖数: 18
31
近来google面试好像没什么难题。不过另一方面, 不知道google更侧重于什么了。 以
前至少知道难题做出来了feedback不会差。
s***c
发帖数: 50
32

common
第一题我的方法是: 先找出最短的字符串,然后,对于该字符串的每个字符,依次与
其他字符串的对应位置比较。如果相等,继续下一个字符串。一旦看到一个不等,马上
退出。当前已经完成的最短字符串部分,就是longest common prefix。
第6题,就是给一个int array,每连续K个元素为一组,求该组元素的和。

【在 r*******g 的大作中提到】
: 第一个题,为何不是依次比较。
: 比如第一个和第二个的common prefix长度为10,第三个string就只需要和这个common
: prefix比较,然后不断比较下去。
: prefix就是长度的意思,比如abcxxxx,abdyyyy,结果就是ab?
: 第六题说的不是很清楚,有什么限制条件没有
: Thanks.

h**6
发帖数: 4160
33
最后一题。
19楼demon的结果和22楼gate的结果是不同的,只是两人都没有错,一个是直角坐标系
的uniform分布,一个是极坐标系的uniform分布。
这是一个著名的悖论:
http://en.wikipedia.org/wiki/Bertrand_paradox_(probability)
g**e
发帖数: 6127
34
赞,学习了

【在 h**6 的大作中提到】
: 最后一题。
: 19楼demon的结果和22楼gate的结果是不同的,只是两人都没有错,一个是直角坐标系
: 的uniform分布,一个是极坐标系的uniform分布。
: 这是一个著名的悖论:
: http://en.wikipedia.org/wiki/Bertrand_paradox_(probability)

y******n
发帖数: 47
35

应该是 x = r*cos(theta); y = r*sin(theta) ?

【在 g**e 的大作中提到】
: 8. let rand() generates uniform distributed value between [0,1)
: r = sqrt( rand() );
: theta = rand() * 2 * pi;
: x = r*sin(theta);
: y = r*cos(theta);
: return (x,y);
:
: ob)

m**q
发帖数: 189
36
就是说是否均匀分布是依赖于坐标系的, 直角坐标系的
uniform分布拿到极坐标系就不是uniform了,反之亦然?

【在 h**6 的大作中提到】
: 最后一题。
: 19楼demon的结果和22楼gate的结果是不同的,只是两人都没有错,一个是直角坐标系
: 的uniform分布,一个是极坐标系的uniform分布。
: 这是一个著名的悖论:
: http://en.wikipedia.org/wiki/Bertrand_paradox_(probability)

1 (共1页)
进入JobHunting版参与讨论
相关主题
10分钟前的T家电面面经常见的string hash function
讨论几道google题(附个人答案)遭遇老印interviewer...
Groupon 2面 面经大文件去重复,有什么好办法么
被米群网给恶心到了无穷的字符串流, 有限的内存, 如何快速的找出唯一一对 重复字符串?
Facebook被拒,写个面经湾区公司店面
面经+一点个人体会google phone interview question
亚麻公司 校园面经Amazon电面面经(1面和2面)
有人知道怎么证明最短公共超序列问题是NP Hard 的么?谢谢!youtube, tripadvisor的onsite面经
相关话题的讨论汇总
话题: node话题: lastnode话题: null话题: 编程话题: ret