11/23 Google MTV Onsite, Fail, 被调剂SETI加面,发面经求RP,顺便问SETI是什么鬼

原帖地址:一亩三分地

11/23去的MTV Onsite,昨天接到HR电话,Fail了,得到的两个反馈。
1. 简单题答得不错,难题答得不好。
2. 你需要多积累Industry经验。
然后问我SETI的职位有没有兴趣,我说有,于是一月份再来一次Onsite。求小伙伴提供一些SETI的信息,地里翻来翻去就一个帖子。还有更多信息吗?这组是只做测试吗?你们对做测试怎么看?我觉得能做开发的不会去测试吧?
被调剂的感觉好差。。。而且看到其他帖子,进了之后,说过了一年才能换组。。。哎。。。你们怎么看的。
下面帖子的楼主也有相同困境
http://www.1point3acres.com/bbs/thread-148327-1-1.html
-google 1point3acres下面帖子的楼主拿到过SETI的Offer
http://www.1point3acres.com/bbs/thread-148574-1-1.html

面试4轮如下:
1. 第一轮一个东欧老爷爷,问我一些简历问题,貌似很资深的样子。问我会啥?我说会DB。老爷爷说:那就考考DB。
有一个数据库的表,都是URL,这些URL的Prefix很多都是相同的。现在加了Index,但是读取依旧很慢,有何改进。
我第一反应是Trie,老爷爷说这是DB。。。我说哦,那么试试Caching。然后继续,我说可以不可以分布式存储,搞点分布式的东西出来。他说Ok,但是现在只有一台机器怎么办。
那我继续问,你这些读写要求是啥,老爷爷说读一次,很少读第二次。那我就想了,放两张表,一张STAGING,一张ARCHIVE。每次从STAGING里面读取完成后,就把数据插进ARCHIVE里面。那么STAGING会越来越小,效率就会高了。貌似这个还不是他要的。我说按照Prefix拆成两张表把。一个表存Prefix,一个表存Prefix剩余的部分。貌似这个才是他满意的答案。
Coding部分不难,就是Isomorphic Number的简化版,给你一串数字,Digit,让你生成给定Threshold一下的所有数字。比如说Threshold是15,一串Digit是[0, 1, 2],那么你要输出[0, 1, 2, 10, 11, 12]。然后问了一下怎么测试。
函数签名自行定义。

2. 第二轮是个亚洲人,在一个BST里面搜索一个离Target最近的值。这个题目做的不好,我上手脑抽,用了O(n)的算法,后来想到O(logN)的。做完之后,来了一道序列化,反序列化General Tree,General Tree存的是String。这题时间没够,没做完。

3. 第三轮是个美国年轻女人,第一次面试人,竟然还带一个Shadow。。。题目就是Max Path Sum的。。。简化版。。。接着问Tree很大怎么办,我说要不按照BFS拆?她说可能会浪费空间哦,那么我说按照DFS拆?然后她也晕了,然后就聊了20分钟人生理想。。。不知道是不是挂在她手里。

4. 第四轮也像一个欧洲来的。先给了一道题,flipImage(byte[] img, int width, int height) 把这个Byte Image给左右翻转。给的Input其实是个2D Array,但是用1D表示。对于Byte Array每一行,做[1,2,3]变成[3,2,1]。接着问我这个Assumption是啥?随便扯了一点,最后他说你假定是一个byte存一个Pixel。那么现在改成Bit Image怎么弄?那么每个Bit翻转咯,写了一个Method去Bit翻转一个Byte。接着他说,我给你一些Extra Memory,你怎么优化。我说那个256的Array把翻转结果存下来。接着再问,你这个是一个Class,怎么初始化这个Array。讨论了好多初始化,最后他想要的答案是这个。切记切记,Java还有这么奇怪的初始化方法。。。
public class FlipImage {
private static final byte[] LOOKUP_ARRAY = INIT_LOOKUP_ARRAY();
private static byte[] INIT_LOOKUP_ARRAY() {
// Some code here
return new byte[256];
}
}

最后求一发RP,还有求SETI的更多信息,Test以后的前途,转SWE的希望?谢谢了。