Friday, May 22, 2015

http://www.mitbbs.com/article_t/JobHunting/32975929.html

一面:
insert interval 之前刷过,所以迅速作出来了。
我用了arraylist,然后面试官日本小哥追问半天为啥要用arraylist, 我就说
arraylist比较方便啊(其实因为用leetcode,经常list就报错,不知为啥,我也没深究
),random access之类的,用array是fix size的对这道题不方便,最后就是追问我为
啥不用java里的list interface,然后list 怎么implement之类的,我也都答上来了,
recruiter的评价是对我data structure的顾虑,还有应该多交流,多说点test case。
二面
find the first non-repeating character in string
非常简单题的题目,好像是个abc小哥,这次就让我先说思路,然后非常详尽的问time 
complexity, space complexity,说了好久才让我动手写,我用的是hashmap存
frequence的思路,怪我自己脑子抽了,把hashmap的traverse顺序记成了insert顺序,
经过提醒立刻给改了过来,然后就问了返回时候如何返回空的char的问题,我说空的
char ''是literal,能不能返回null, 他说他也不确定,然后又各种不厌其烦的问复杂
度,好像没有打算问下一题目的意思~~可能是这两点让人家认为我data structure学
的不牢靠,结果两天以内就收到recruiter的拒绝电话,让等10-12个月再申请,说可以
立刻申请application developer这个不需要小黑屋一年,反正就是,哎,都是泪

问了这么简单的题目都挂了,真的是太惭愧了,白准备那么多难题了,桑心~

http://www.mitbbs.com/article_t/JobHunting/32973801.html

1.  Design 题, 填字游戏。  m x n 的格子, 里面有一些是黑色格算是边或者墙。 
给你一个字典,填满这些格子使得行、列都是有效的单词。

2.  Design 题, Key - Value store, value 可以是很小,也可以很大 (Gig bytes).

3.  LRU Leetcode

4.  抓阿里巴巴。 一排洞,一个阿里巴巴呆在某个洞里。白天,你去开某“一个”格
子,如果阿里巴巴就在这里,你抓住他了。如果没抓住,晚上,阿里巴巴会躲到相邻
的某个格子里。注意,只能而且一定左或右跳一格。
题目: input, n 个洞穴, 一个Check 序列 ,你判断一下,这个序列能不能抓住阿里
巴巴。 比如,n = 3. { 1, 1 }.  这肯定能抓住, 返回true.  

5.  其他的 一些 Leetcode 题这里略过了.... 

6. Auto complete (Design)

Thursday, May 21, 2015

http://www.mitbbs.com/article_t/JobHunting/32924157.html

发面经攒人品
1. Google电面
女ABC
第一题是leetcode原题missing range,轻松通过
第二题类似高斯滤镜,计算矩阵平均值with a given radius
e.g. [[1,2],[3,4]] with radius 1 -> [[2.5, 2.5], [2.5, 2.5]]
给了brute force的解,然后1个月后告诉我跪了。面试官在结束以后告诉了我可以用类
似sliding window的方法优化

2. Nutanix两轮电面
第一面是个很nice的白人,扯淡10分钟然后让写了个fizzbuzz水过(不知道fizzbuzz的
朋友可以自己去google下这东西,保证你一口水喷出来)
第二面三哥,全程没做题,问我各种design problem和简历上的project,自己感觉答
的还行(三哥还很开心很满意的样子),三天后收到模板拒信

3. WhatsApp电面
ABC小哥,上来直接让implement trie with insertion and deletion
insertion写出来了,跪在deletion。第二天收到HR拒信

4. Yelp电面
昨天刚面的,又是三哥面试官。上来先聊了半小时project和一些技术问题,比如页面
载入缓慢如何诊断之类的。剩下15分钟做题,题目是这个:
http://stackoverflow.com/questions/16927353/algorithm-for-findi
简单说就是给a list of segmentations,让你找出最大数量的non-overlapping segs
,用的是上面链接的那个算法,DP with O(n^2)。三哥没让给我写代码,就让我讲了下
算法,讲完以后三哥说这就是他想要的算法,very good, bla bla bla
但是后来我仔细找了下这题貌似有O(nlogn)的解……

5. WePay两轮电面
第一轮是个白人很nice,就让写了两题:palindrome / palindrome with anagram,轻
松水过
第二轮今天刚面完,是个很nice的abc小哥。前两题很水:reverse string / reverse 
text。第三题让你实现一个简化版的渐变色算法:给一串text,让你实现RGB (0,0,0) 
-> (255, 0, 0) -> (0, 255, 0) -> (0,0,255)的渐变效果,没什么难度但是中间因为
小哥的网络和电话信号问题中断了10几分钟,导致写这题的时候时间不够(前面这题的
spec解释了挺久,后来小哥一看时间不够就让我写简化版的了,没想到时间还是不够)
,小哥说是他的问题所以不怪我,让我面试以后自己在online notepad里写个pseudo 
code with detailed comment就行,说是因为有人会查


其他几个小公司有点记不清了。感觉那么多公司面下来Google的recruiter最nice,不
管是回邮件速度还是给feedback。
Nutanix的那个笑里藏刀的三哥让我第一次感觉到了被烙印黑是什么感觉,希望Yelp的
烙印不要再黑我了。

这次找工作经历感觉各种奇葩,遇到的算法题不是太简单就是太难,我就想安静的写一
个Merge k Sorted Lists或者LRU cache这种难度的题啊……从一月投简历开始到现在
一直在面一直在被拒,到目前为止一个onsite都没有。不过从最早的简历直接被拒到现
在的面试被拒至少有了点进步,Yelp的面试没有找内推自己直接网申也拿到了。
最后想求bless一发Yelp和WePay的onsite……当然能bless offer最好了:)

Wednesday, May 20, 2015

http://www.1point3acres.com/bbs/thread-134959-1-1.html

潜水很久,就当回报大家,回报个面经。
钱了nda,不过好像不是面试提。

一共4轮,LZ很水, 一轮就一题。 鏉ユ簮涓€浜�.涓夊垎鍦拌鍧�. 
1. binary search. 
大概就是,一个数组, 1112223334445556677888...
当中少2个数字,找到就行了。
写完大概还有20分钟,让他几个test case,向了4个case,把code path都过了一边,然后没时间了。
2. 料了20分钟简历, 文了一道很简单的题目。
大概就是一个数组
1,4,2,6....
每次调用一个函数,按照数组里面的数字的大小,返回相应的Index。. 鍥磋鎴戜滑@1point 3 acres
比如, 上面的例子就是
1/13 的概率返回0,
4/13的概率返回1
说了两个办法,一个累加起来, 然后用一个随即数,看看在哪个范围里面。另一个先加好,然后Binary search,让写了第二个。大概写了5分钟,然后改成了一个class,
因为题目有什么城市阿,人口阿乱七八糟的。 又华了5分钟,然后没时间了。
3.
这轮免得不好而且有Shadow。简历15分钟,然后题目是
给一个image, 中心对称一下。 LZ一直写的Python,他让我用java,因为输入是byte [] image, . more info on 1point3acres.com
有点忘记java了。 先大概10分钟写完,后来发现题目意思理解错误,Image 每个像素是一个bit,我以为是
一个byte。 然后擦光重写,最后虽然写完了,他看了一边,觉得没有bug。然后就提问了一下,结束。
4. 很简单,拓扑排序。
题目就是大概,一对文件有dependency, 找到正确的安装顺序。
面试管说一般别人都用dfs做, 没看到我这种做法。可能我把题目稍微变化了一下,不过我觉得想到
拓扑排序还是挺正常的。
做万剩下15分钟,面试管很Nice,问我,你可以选择再做一道,但是你可能做不完,或者我们聊一下,轻松点。
说这到题目,代码量购了,不用再做了。然后我就聊天了。。。。

一周以后HR口头offer,然后现在在等正式。
一共面试了3家公司,google, facebook, twitter.
facebook都是面经题,没什么好说的。不过大家不要做的太快,否则会说你做过,然后让你加面。
一个国人大哥在jedi那轮,问我leetcode maximum rectange那题。 毫无办法,只能秒掉,否则感觉时间不够。
加面那轮,因为之前已经拿到Offer了,然后我达了一晚上DOTA2。。。面试那天,题目理解错误,挂掉了。.1point3acres缃�
说多了都是泪,大家千万不要学我。 鏉ユ簮涓€浜�.涓夊垎鍦拌鍧�. 
. Waral 鍗氬鏈夋洿澶氭枃绔�,
至于twitter,美女真是多。 单身程序员绝对推荐,在那边吃饭,我眼睛根本看不过来。。。coding不是很难,
最难的就是prefix tree + wildcard matching, 然后会有设计题目。感觉回答的不好,但是还是给了offer.
. 鐣欏鐢宠璁哄潧-涓€浜╀笁鍒嗗湴
感觉facebook最简单,google稍微难一点,twitter的话,光顾看美女了。哈哈哈。

至于package,
match到后面反正都是差不多。
. from: 1point3acres.com/bbs 
目前还没定去那里,twitter那里可以做full stack engineer,感觉很爽,google的话,还没有team match。
不过lz将来可能要回国,可能会倾向去google.不知道大家怎么看。

http://www.mitbbs.com/article_t/JobHunting/32974005.html

很认同之前有个朋友的说法,多说多错,容易被抓漏洞.

Expedia,
实现一个Trie。
Int array的ongoing max sum (5,2,-6,8,-10,9,4,3). 就是2pointer方法,sum为零后
重置左边的pointer。
设计一个文件上传的web service. (要并行)
Search in a rotated sorted list (revised binary search)
通过web service往数据库写记录,出错时(network timeout),要retry,如何避免
重复记录。我想的是添加UUID来避免重复记录。不过应该还有更好的办法。

Redfin,
点在图形内部,还是外部。(从这个点出发画个辐射线,奇数还是偶数次切割图形)
fisher-Yates shuffle生成随机序列。
测试是否是质数。(从小到大,cache并利用已经测到的质数)。

Facebook,
Merge two sorted linked list (挂在where clause用了||,应当用&&,否则一长一短
的会有多余的steps)

Groupon,
两轮店面都是和树打交道。给出parent child的数对(1,4),(1,5),(2,8),建立个binary
tree. 实际很简单,费半天劲才明白要干什么。还有两轮店面都比较简单,题目想不
起来了。

先这些了。还有些一会儿添加。

Tuesday, May 19, 2015

http://www.mitbbs.com/article_t/JobHunting/32973055.html

算法:power set, swap nodes in pairs, word break 还有一道链表题 不记得了
设计:搜索栏的自动完成功能。
自我感觉还可以,但是还是挂了,发面经攒人品。

Sunday, May 17, 2015

http://www.mitbbs.com/article_t/JobHunting/32971345.html

1.算法
linkedlist (https://leetcode.com/tag/linked-list/)

2 pointer (https://leetcode.com/tag/two-pointers/,或是一头一尾,或是分布于
两个数据结构)

divide and conquer (https://leetcode.com/tag/divide-and-conquer/,最典型的就
是merge sort)

greedy (http://geeksquiz.com/algorithms/greedy-algorithms/,最典型的就是Schedule Activity / Job sequence / Meeting rooms)

recursion and DP (https://leetcode.com/tag/dynamic-programming/,最典型的就
是{Longest / Maximum / Target / Largest / Minimum / Most} + {subX / 
Matrix / Tree / Path})

back tracking (https://leetcode.com/tag/backtracking/,真的找不到很好的方法
时,才会用它)

string (https://leetcode.com/tag/string/,leetcode还是蛮全的)

tree (最典型的就是BFS, DFS, inoder, preorder, postorder, recursive traversal
, iterative traversal, 求path,binary search tree, heap, trie,Minimum 
spanning tree,题目参看leetcode)

graph (DFS, Topological Sorting, Shortest path)

bit (https://leetcode.com/tag/bit-manipulation/)

math (https://leetcode.com/tag/math/)

2. 系统设计总结
相对算法题而言系统设计题更像送分题,当然前提是你得跟着面试官的问题走,不要不
顾面试官的想法自己横冲直撞。我这方面比较薄弱,大家可以参考版上的其他帖子。

3. 有用的url
leetcode
geeksforgeeks
算法题分类总结:http://www.mitbbs.co.nz/article_t/JobHunting/32564237.html
leetcode解法:http://www.cnblogs.com/higerzhang/category/617733.html
编程之法:面试和算法心得:https://github.com/julycoding/The-Art-Of-
Programming-By-July/blob/master/ebook/zh/00.01.md
详细的面试总结:https://www.evernote.com/shard/s576/sh/7e58b450-1abe-43a8-
bf82-fbf07f1db13c/049802174415b418a2e65f75b744ab72
系统设计总结:https://sites.google.com/site/careerofpsyclaudezintheus/
company/design