S******n 发帖数: 132 | 1 拿到x3家offer了,打算从了,见好就收,不打算明天去面x6了,省下时间给大家写面经
首先感谢编程女神,其次感谢本版大牛的资源共享,再次感谢dongfeiwww大牛给我
refer,最后感谢我同学面试前给我mock interview
终于有机会回馈本版,写一些我的个人体会,也激励一下暂时不顺利的同学
我总共面了两家半,被x5拒了,x3给了offer,x6是半途而废,唉,dream company,最
近太忙实在没啥时间准备,为免留下悲剧记录,最终决定放弃,俗话说去不了北大,去
北师大也不错,还多一个字,于是决定去x3了。x3签offer不透露题目了,NYC貌似比CA
钱少一点,有家庭的还是可以考虑去加州
我先回忆x5面经,再写感受
可能local的原因,直接一轮onsite,面试我的是一个中国人,人非常nice,给我详细
讲解了公司的情况,我因为面试之前看了王淮那本《打造facebook》,对x5有了一定的
了解,中途问了几个问题,让面试官回答的很high,目的基本达到了,
还是推荐这本书,觉得大家无聊上厕所可以看看这本书,对招人,面试有很详细介绍,
其他一些开发管理的观点也有所启发,而且他的职业规划我也很喜欢,从技术到管理最
后资本运作,很清晰
面试出了两个题
1 rotate binary search,如果有duplicate如何处理,代码能如何优化减少search次数
2.given an array, find out the max sum of a set that each elements are non-
ajacent.动态规划很简单,刚开始用了数组来存,发现两个变量滚动赋值就可以了
这一轮过了以后被叫去第二轮onsite,四个人
1. 白男
1)print binary tree level by level,先写了bfs,然后说限制内存,吭哧了半天用
dfs分层限制,好不容易搞出来了,对方说,你这个binary tree要是只有left child,
或者right child,太耗内存,不行,修改代码,最后他跟我说的是如何写这段代码,
编译器会进行优化,对栈进行重用,大家有兴趣可以想一想
2)找第几个permutation,leetcode上有题,没想过当场写感觉会时间不够想吐血
2. manager, 一堆behavior,然后double sqrt, 复杂度,如何优化
3. 亚裔,很拽的样子,
1)两个list相加,优化代码
2)regular expression,这个题目,大家应该练练,我和我同学都被问道,结果他没
练挂
了,我知道以后后面练过了,才把它写对
4. 设计题,地图搜索,怎样设计index,系统结构,总之相谈甚欢,想恨渐晚的感觉
结果被拒了,我问hr是不是白男那轮dfs那个答得不好,hr跟我说我系统设计答得不够
好,我想不是跟面试官相见恨晚的感觉吗?他还一个劲表扬我,弄的我自信心爆棚,这
个谜团终于在上上个礼拜解开,我跟我同学聊起面试,他觉得我肯定不是coding那两轮
的问题,然后让我讲讲设计题,结果我以讲发现,我原来思维过于跳跃,想到什么讲什
么,虽然吧面试官,对很多细节表示赞同,但是我混乱的思路多次偏题,估计把人逼疯了
后来我注意留意了公司senior在将涉及的一些细节,他们会把一个问题先理解清楚,一
条一条把要求写出来,然后写API,再画个基本框架图,然后把要求一点点补充进去,
为了某个要求需要那些组件,最后扩展到大规模数据,于是这边成为我之后练习的一个
思路,我发现设计题是很有套路的,一般45分钟的面试
1)3-5分钟把要求问明白,列出重点
2)5-10分钟写API
3)画框架图,然后这个地方要完成什么功能需要加一个cache,那个地方要加一个load
balance,逐步深入
这样不仅思维比较有序,面试官听着轻松,而且也能帮助像我这样英语不好的人把事情
描述好。
这个链接我觉得不错,讲了个初略,对没有太多经验或者时间太紧的同学可以读一读http://www.aosabook.org/en/distsys.html
然后是x5 hr推荐的那本书 building scalable web sites读了一些,也小有收货
然后我在看linux多线程服务端编程,师兄写的书,实战经验,觉得很不错
coding和算法我觉得不能题海战术,而要理解,你如果不能从0开始分析,即便能写对
代码也存在风险,因为题目的变化很多,简单的题目稍加限制条件就会变得很有难度,
比方说跟list有关的题,list有环的情况大家每次都考虑没?最简单一题,问两个list
是否相交,那么两个list存在分别成环,相交成环,没有环几种可能,你是否都考虑到
了。还有一点是关于复杂度,一般大家考虑复杂度就是速度快,但有的时候面试官就是
想省内存,这种情况你也要能快速提供思路,比方最简单的print tree level by
level
我只准备了leetcode的题目,太有帮助了,不过也养成了个坏毛病,不爱自己写test
case了。最后如果要看面经千万别花时间去careercup看别人的评论,浪费时间不说关
键大
部分还不对。
以上经验只针对那些互联网IT公司,你要去金融公司做IT,就抱一本语言的书开始背吧
,你
知道的东西越多越详细,越容易被录上
刚毕业的时候找工作总碰壁,自己水平不行但又眼高手低,总觉得据我的公司都傻逼,
怀才不遇的感觉啊就像当年发酒疯的李白,我的好朋友千里之外打电话安慰我
她问我你觉得男人该靠什么取得一番成绩?我说,靠爹呗,她说,(骂了我一小时,此
处省略),然后说男人靠的是沉淀,再多的失败都是为你有机会成功做积累,所以碰壁
多也不要灰心,工作低微没价值也没必要抱怨,只要脚踏实地,慢慢积累沉淀下来,就
一定能成功。我当时说,扯蛋。不过现在想想她是对的,回过头来看失败都是因为积累
不够,人家大学四年至少学了三年,你打了4年游戏泡了一打妹子,肯定找工作的时候
必须花更多的努力和时间来弥补。总之吧压力不在这个时候承受,就要在那个时候承受
,所以在挣扎的同学,不要灰心继续加油,offer就在前面。眼高手低的同学如果吕碰
钉子不妨从简单点的工作先做起,自我感觉过好的同学可以找人给点意见,最后,打游
戏的同学可以暂时停一停了,打游戏耗费青春,你水平再高也难进游戏公司,我曾经在
简历上写魔兽对战北美前10,有丰富的游戏竞技经验和游戏平衡感整体把握能力,结果
还是没有换来暴雪一个面试。
最后祝大家都拿到理想offer |
a***o 发帖数: 1182 | 2 x3是哪里?
面经
CA
【在 S******n 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 拿到x3家offer了,打算从了,见好就收,不打算明天去面x6了,省下时间给大家写面经 : 首先感谢编程女神,其次感谢本版大牛的资源共享,再次感谢dongfeiwww大牛给我 : refer,最后感谢我同学面试前给我mock interview : 终于有机会回馈本版,写一些我的个人体会,也激励一下暂时不顺利的同学 : 我总共面了两家半,被x5拒了,x3给了offer,x6是半途而废,唉,dream company,最 : 近太忙实在没啥时间准备,为免留下悲剧记录,最终决定放弃,俗话说去不了北大,去 : 北师大也不错,还多一个字,于是决定去x3了。x3签offer不透露题目了,NYC貌似比CA : 钱少一点,有家庭的还是可以考虑去加州 : 我先回忆x5面经,再写感受 : 可能local的原因,直接一轮onsite,面试我的是一个中国人,人非常nice,给我详细
|
r**h 发帖数: 1288 | 3 赞设计题的总结!
regular expression感觉都成F的标配了 |
t****d 发帖数: 423 | 4 赤裸裸的xbt啊
一打mm
面经
CA
【在 S******n 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 拿到x3家offer了,打算从了,见好就收,不打算明天去面x6了,省下时间给大家写面经 : 首先感谢编程女神,其次感谢本版大牛的资源共享,再次感谢dongfeiwww大牛给我 : refer,最后感谢我同学面试前给我mock interview : 终于有机会回馈本版,写一些我的个人体会,也激励一下暂时不顺利的同学 : 我总共面了两家半,被x5拒了,x3给了offer,x6是半途而废,唉,dream company,最 : 近太忙实在没啥时间准备,为免留下悲剧记录,最终决定放弃,俗话说去不了北大,去 : 北师大也不错,还多一个字,于是决定去x3了。x3签offer不透露题目了,NYC貌似比CA : 钱少一点,有家庭的还是可以考虑去加州 : 我先回忆x5面经,再写感受 : 可能local的原因,直接一轮onsite,面试我的是一个中国人,人非常nice,给我详细
|
g**G 发帖数: 767 | |
r*******e 发帖数: 7583 | 6 版上隐牛太多了
泡了一打mm加魔兽排名前十,还能随便搞定FLG,膜拜啊
面经
CA
次数
疯了
load
list
【在 S******n 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 拿到x3家offer了,打算从了,见好就收,不打算明天去面x6了,省下时间给大家写面经 : 首先感谢编程女神,其次感谢本版大牛的资源共享,再次感谢dongfeiwww大牛给我 : refer,最后感谢我同学面试前给我mock interview : 终于有机会回馈本版,写一些我的个人体会,也激励一下暂时不顺利的同学 : 我总共面了两家半,被x5拒了,x3给了offer,x6是半途而废,唉,dream company,最 : 近太忙实在没啥时间准备,为免留下悲剧记录,最终决定放弃,俗话说去不了北大,去 : 北师大也不错,还多一个字,于是决定去x3了。x3签offer不透露题目了,NYC貌似比CA : 钱少一点,有家庭的还是可以考虑去加州 : 我先回忆x5面经,再写感受 : 可能local的原因,直接一轮onsite,面试我的是一个中国人,人非常nice,给我详细
|
c******a 发帖数: 789 | |
s*****r 发帖数: 43070 | |
w**********0 发帖数: 214 | |
s*****r 发帖数: 43070 | 10 估计x3=L,x5=F,x6=G
【在 c******a 的大作中提到】![](/moin_static193/solenoid/img/up.png) : x3 x5 x6都是啥?
|
|
|
c******a 发帖数: 789 | 11 哎哟,最近F还真没人能去成啊。
【在 s*****r 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 估计x3=L,x5=F,x6=G
|
c******a 发帖数: 789 | |
w******j 发帖数: 185 | |
w******j 发帖数: 185 | 14 那个print bst level by level怎么省memory...什么意思,怎么用stack?
还有map search 能具体再讲讲吗?facebook还做map search吗? |
r*******e 发帖数: 7583 | 15 通常用BFS,不过同一层的可能放不进memory
DFS对于balanced tree能省不少
http://leetcode.com/2010/09/binary-tree-level-order-traversal-u
【在 w******j 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 那个print bst level by level怎么省memory...什么意思,怎么用stack? : 还有map search 能具体再讲讲吗?facebook还做map search吗?
|
w******j 发帖数: 185 | 16
那个interviewer的意思是说,用tail recursion的话,compiler会自动给optimize吗?
【在 r*******e 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 通常用BFS,不过同一层的可能放不进memory : DFS对于balanced tree能省不少 : http://leetcode.com/2010/09/binary-tree-level-order-traversal-u
|
r**h 发帖数: 1288 | 17 这想法不错!
也就是说,将一个节点只有一个child的情况单列出来,就可以变成尾递归了
虽然有两个子节点的还是逃不掉,不过应付面试官提到的case应该可以
甚至可以在程序里面显式优化?当前节点只有一个child的话,直接走到下一个节点而
不经过function call
吗?
【在 w******j 的大作中提到】![](/moin_static193/solenoid/img/up.png) : : 那个interviewer的意思是说,用tail recursion的话,compiler会自动给optimize吗?
|
p*****3 发帖数: 488 | 18 “代码能如何优化减少search次数”
是不是在pivot上做文章? |
p*****3 发帖数: 488 | 19
如果是这种不平衡情况呢?
o
o o
o o
o o
o o
o o
o o
【在 r**h 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 这想法不错! : 也就是说,将一个节点只有一个child的情况单列出来,就可以变成尾递归了 : 虽然有两个子节点的还是逃不掉,不过应付面试官提到的case应该可以 : 甚至可以在程序里面显式优化?当前节点只有一个child的话,直接走到下一个节点而 : 不经过function call : : 吗?
|
r**h 发帖数: 1288 | 20 大概像这个样子?
void dfs(Node* root, int N){
if(root == NULL) return;
if(N == 0){
cout << root->val;
return;
}
while((root->left && 1) + (root->right && 1) == 1){
root = root->left ? root->left : root->right;
if(!(--N)){
cout << root->val;
return;
}
}
if(root->left==NULL && root->right==NULL)
return;
dfs(root->left, N-1);
dfs(root->right, N-1);
} |
|
|
r**h 发帖数: 1288 | 21 “对方说,你这个binary tree要是只有left child,
或者right child,太耗内存,不行”
我觉得有两个child的情况没有办法优化啊
【在 p*****3 的大作中提到】![](/moin_static193/solenoid/img/up.png) : : 如果是这种不平衡情况呢? : o : o o : o o : o o : o o : o o : o o
|
p*****3 发帖数: 488 | 22
tail recursion只优化右分支啊,要是都是左边的怎么办
【在 r**h 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 大概像这个样子? : void dfs(Node* root, int N){ : if(root == NULL) return; : if(N == 0){ : cout << root->val; : return; : } : : while((root->left && 1) + (root->right && 1) == 1){ : root = root->left ? root->left : root->right;
|
r**h 发帖数: 1288 | 23 没有呀
我的思想就是,如果当前节点只有一个child的话,就往那个child走了,同时更新N
往左往右都有可能呀
【在 p*****3 的大作中提到】![](/moin_static193/solenoid/img/up.png) : : tail recursion只优化右分支啊,要是都是左边的怎么办
|
l***i 发帖数: 16 | |
S******n 发帖数: 132 | 25 我只是打个比方,男生一般容易被两件事情给耽误了,一是女生,二是打游戏,所以现
在不如别人顺是因为以前别人努力学习的时候你花了过多时间干其他事。现在顺风顺水
打游戏泡mm的,之前也是付出很大的,所以不用抱怨自己运气太差,上天不公,这样在
美国这种朋友亲人不在身边深受挫败才不至于抑郁
【在 r*******e 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 版上隐牛太多了 : 泡了一打mm加魔兽排名前十,还能随便搞定FLG,膜拜啊 : : 面经 : CA : 次数 : 疯了 : load : list
|
S******n 发帖数: 132 | 26 信仰
【在 c******a 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 编程女神 是啥?
|
S******n 发帖数: 132 | 27 差不多就是这个意思,code稍加改动
【在 r**h 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 这想法不错! : 也就是说,将一个节点只有一个child的情况单列出来,就可以变成尾递归了 : 虽然有两个子节点的还是逃不掉,不过应付面试官提到的case应该可以 : 甚至可以在程序里面显式优化?当前节点只有一个child的话,直接走到下一个节点而 : 不经过function call : : 吗?
|
S******n 发帖数: 132 | 28 处理边界的时候有一些可以优化的,你把你的代码贴出来,可以让大家帮你看看怎么优化
【在 p*****3 的大作中提到】![](/moin_static193/solenoid/img/up.png) : “代码能如何优化减少search次数” : 是不是在pivot上做文章?
|
S******n 发帖数: 132 | 29 两个child没办法
【在 r**h 的大作中提到】![](/moin_static193/solenoid/img/up.png) : “对方说,你这个binary tree要是只有left child, : 或者right child,太耗内存,不行” : 我觉得有两个child的情况没有办法优化啊
|
J****3 发帖数: 427 | |
|
|
p*****3 发帖数: 488 | 31
优化
如果不算尾递归的话怎么优化?
class Solution {
public:
bool search(int A[], int n, int target) {
if (n <= 0)
return false;
if (A[n/2] == target)
return true;
if (A[0] == A[n-1] == A[n/2])
return search(A, n/2, target) || search(A+n/2+1, n-1-n/2, target
);
if (A[n/2] >= A[0] && target >= A[0] && target >= A[n/2]
|| A[n/2] <= A[n-1] && target <= A[n-1] && target >= A[n/2]
|| target <= A[n-1] && A[n/2] >= A[0] && A[n-1] <= A[0])
return search(A+n/2+1, n-1-n/2, target);
return search(A, n/2, target);
}
};
【在 S******n 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 处理边界的时候有一些可以优化的,你把你的代码贴出来,可以让大家帮你看看怎么优化
|
b*******n 发帖数: 847 | |
c********p 发帖数: 1969 | |
x*****0 发帖数: 452 | |
J*********r 发帖数: 5921 | 35 true
【在 S******n 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 我只是打个比方,男生一般容易被两件事情给耽误了,一是女生,二是打游戏,所以现 : 在不如别人顺是因为以前别人努力学习的时候你花了过多时间干其他事。现在顺风顺水 : 打游戏泡mm的,之前也是付出很大的,所以不用抱怨自己运气太差,上天不公,这样在 : 美国这种朋友亲人不在身边深受挫败才不至于抑郁
|
p*****2 发帖数: 21240 | 36 不错。刚看了。写的很好。
design的题目一定要设计API吗?我怎么感觉应该在architecture的层次考虑呢?API应
该更细节了吧? |
i******w 发帖数: 214 | 37 个人感觉f更像x6 g像x5
面经
CA
【在 S******n 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 拿到x3家offer了,打算从了,见好就收,不打算明天去面x6了,省下时间给大家写面经 : 首先感谢编程女神,其次感谢本版大牛的资源共享,再次感谢dongfeiwww大牛给我 : refer,最后感谢我同学面试前给我mock interview : 终于有机会回馈本版,写一些我的个人体会,也激励一下暂时不顺利的同学 : 我总共面了两家半,被x5拒了,x3给了offer,x6是半途而废,唉,dream company,最 : 近太忙实在没啥时间准备,为免留下悲剧记录,最终决定放弃,俗话说去不了北大,去 : 北师大也不错,还多一个字,于是决定去x3了。x3签offer不透露题目了,NYC貌似比CA : 钱少一点,有家庭的还是可以考虑去加州 : 我先回忆x5面经,再写感受 : 可能local的原因,直接一轮onsite,面试我的是一个中国人,人非常nice,给我详细
|