Tuesday, May 10, 2016

Facebook Interview Misc Part 2


http://www.1point3acres.com/bbs/thread-191077-1-1.html
FB家对new grad 或者毕业后工作短于一年的同学是可以不考design的。

对phd 毕业或者毕业超过一年的童鞋是要考desig.鏈枃鍘熷垱鑷�1point3acres璁哄潧
phone interview 只考coding。
onsite 经典4轮 Coding/"Ninja" (2)  Design/"Pirate" (1)  Conversation/Career Background & Trajectory/"Jedi" (1)-google 1point3acres
根据面试情况可能会加试一轮。

算法 & coding : 个人感觉 leetcode 刷透做熟悉就够了。 fb 家不是以难度取胜。
他家一般都是leetcode medium level的题目,一般是原题或者小变种。-google 1point3acres
他家coding的难点是bug free, 细节和追问。
比如说给你一个 binary tree, 每个节点存一个整数值,让你求每个layer的平均数。
这个题目看上去很简单, 但是要注意输出, 3和4 平均是3.5, 如何你用java 解,输出是整数,那么你的结果就不准确。. 鍥磋鎴戜滑@1point 3 acres
这些细节点一点要问清楚,如果考官让你自己定,那就选保险一些的。
另外就是bug free, 这里bug free指的是没有逻辑和算法错误,变量名啥的写错了也没啥。. 鐣欏鐢宠璁哄潧-涓€浜╀笁鍒嗗湴
另外coding 轮最重要的一点还是communication, 考官问完问题以后,
一定要clearfy 一下题目的意思和输入输出然后把你的思路和考官说一下,之后考官同意,再写code。 他家很注重交流,如何你听完题目,就直接写code。
就算是最优解,你也会fail,因为没有交流的过程。 coding 轮不光考算法,也会看你的交流能力如何。

design: 他家的design 有难有易。  基本部分另外一帖子说过了直接贴过来。
能准备的准备好了,剩下的就是放宽心态,好好发挥了。实力到了,那么胜率自然高。
fb家大牛很多,design比较看运气。

design 轮是有技巧性的。
一般过程是 
1 问清 requirement 5~10 分钟
2 high level design(设计flow 相关api 和数据存储)
3 细节设计,详谈flow, api

一定要按顺序来。不要直接跳到第三步。
下面几段话感觉很有用。lz是实战后得出的这些总结。
ab和fb都跪在design,之后调整策略,胜率就上升了。

准备design主要是参考了这个网站:
http://www.hiredintech.com/system-design/
感觉还是挺有用的。其他就是mitbbs上那位大牛给的一些资源
http://www.mitbbs.com/article_t/JobHunting/32777529.html


Conversation/Career Background : 鏉ユ簮涓€浜�.涓夊垎鍦拌鍧�. 
自己的工作经验和project要准备好,这个没啥好说的。
下面几个是常见的 behavious question:

1 First, ask some questions about Facebook, do you use Facebook?2 Why you like it? 
3 Which part of it should be improved? 
4 What challenge you face in your pre project and how you result it?
5 Why facebook 
6 My current project and how I scale our applications.
7 包括以前的成就,怎么说服别人做design的修改,说服不通怎么办。
8 FB specifically (vs. other companies)


附录FB 常见design 问题=============================
1 Design a web crawler with fixed set of resources.

2 Design a real-time type-ahead search-phrase predictor which presents the top-10 ranked search strings that begin with a given prefix. 3 Design timeline的group权限,比如说user发一条status可以选择对某个group的好
友可见。题目很简单,但是会讨论到facebook用户规模的估算,服务器估算,social  graph的存储。
感觉system design只要讲个大概思路就行,面试官不会去纠结太细节的东西。
4 design偏向设计存储结构
5 system design: 设计key-value store,直接列了一大堆从client到server的要求,
基本处处陷阱,经验这里比较重要,光按面试准备基本没效果。
6 搜索栏的自动完成功能7 那个给你一个点, 然后有几个million的POI, 找出最近的20个。。。- geoHash我说那个Z distance。。 two dimension变成一个dimension, 那个面试官说, 没听说过Zdistance, 不行。。。
8 find close coordinates9 上来讨论了20分钟的如何设计data structure表示fb的friend和follower两种关系,各种结构的tradeoff。我边讨论边猜是不是要我clone graph,然后默念怎么还不让
我写code。果然,deep copy。不过最后讨论的data structure 和lc上有点不同,dfs
思路是一样的。整个过程很愉快,abc男也是好多positive feedback。面试结束了还和
我激动的说了半天来fb的种种好处(工资,休假之类的)
10 deadlock设计11 问为什么Facebook,对Facebook的哪个feature最喜欢,为什么喜欢,然后这个feature还有什么不足。
12 之后让给他一个非常specific的例子说当你和同事出现技术上的冲突的时候,应该怎么解决,问的特别细,
特别深入。
13 从头到尾面无表情,口音也很难懂,我当时就觉得不妙,
果真就跪在这轮。design news feed API, 这题我准备过,但是按pull/push model准
备的,还准备了pub/sub model,就是给每一个friend都建一个queue,推送一份news,
算准备过的题。但他不考这些,根本不让我说关于aggregator tier或者database tier
的东西,主要focus API怎么写,input/output, feed里图片怎么存,想mention 
friends怎么存,怎么做multi device sync。我觉得他的考点似乎在data 
serialization/deserialization这边
?感觉和他交流就是隔着窗户喊话,一直在猜,所
以差评也是必然的。。。

14 设计题,传输10G的data到5个data center,每个data center 有1000的
节点
。三哥从问背景就开始找茬,面试过程中要求解gossip protocol的微分方程, 被
黑。
15 设计iPhone Find Friends 的后端。Geohashing + DHT解之16 设计题问得很细,比如DHT如何实现,单机的Hash table如何实现能节省内存, 如何做
concurrency control,如何实现mutex之类的。

17 system design: 每个record有个很大field,比如年龄,性别,爱好等。给一个field的组合,
比如小于25岁,爱好体育,query满足这些组合条件的用户个数
18 设计一个facebook的搜索引擎,这个引擎能搜索出包含关键字的facebook动态。没有讨
论太多前端的,主要在讨论架构和存储。
给出了倒排索引来存储index,以及讨论了下如何存储facebook的动态(key-value 存储
)如何handle hot keyword。面试官人很好,引导我的思路。
19 system design白人大叔, 有个function是List<id> getNearest(int x, int y
){}, 假设从mobile上在地图上点一下,然后返回改点附近的所有建筑location。怎么
设计data structure以及data scheme
20 System design设计手机上读取photo feeds的app。
    功能: 读取好友的最近图片
               阅览好友的相册
    要求: 满足功能的同时减少对手机的能耗。
21 design:tiny url。
22 System design: instgram
23 Culture fit:
有200M个用户,现在让你进行分组,将他们分成大概20个组,每个
组里大概有10M的用户,尽量让用户interaction多的在一起
24 design看了下几篇文章,知道个大意,google的mapreduce, file system, big table,. 涓€浜�-涓夊垎-鍦帮紝鐙鍙戝竷
fb的memcache, unicorn。其他看到过的觉得还不错的design资料,最后一个常见题目. from: 1point3acres.com/bbs 
汇总可以过过看,很有帮助:. 鐗涗汉浜戦泦,涓€浜╀笁鍒嗗湴
http://blog.csdn.net/v_july_v/article/details/7382693
https://www.youtube.com/watch?v=-W9F__D3oY4 
http://www.mitbbs.com/article_t/JobHunting/32741713.html
另外建议稍微准备下常见数据类的写法(包括generic programming), 我倒是没碰到其.1point3acres缃�
他一些concurrency, database, NP-hard之类的题目..
25 设计一个facebook功能:在一个post下面,如果有了新的comment,可以自动显示
不需要刷新后再显示。
27 design facebook chat
28 写一个sequential 多线程pool。实现f(Runable r)要求caller不可以block,但是
在pool里面要一个跟这一个的运行。
29 设计类似gogle地图系统,从A点到B点的算法已经有了。整个地图大概有好几亿条线
段组成,这个系统的市场占有大概30%。要求在小于1妙的时间里算出结果。估算需要多
少台机?要怎么样保存地图,怎么cache
30 然后面试中有个印度人问了个问题,就是如果系统出问题了,有个size很大的log如何
从里面找出相关的信息,同学说直接search关键字,但是面试官不满意也没给提示,所
以不知道怎么回答。
31 国人面试官面出的 design:Shorten Url。面试官人非常nice,可是自己答的一般
,在此谢谢他。

32 google的mapreduce, file system, big table,
fb的memcache, unicorn。其他看到过的觉得还不错的design资料,最后一个常见题目
汇总可以过过看,很有帮助:
http://blog.csdn.net/v_july_v/article/details/7382693
https://www.youtube.com/watch?v=-W9F__D3oY4 
http://www.mitbbs.com/article_t/JobHunting/32741713.html
另外建议稍微准备下常见数据类的写法(包括generic programming), 我倒是没碰到其
他一些concurrency, database, NP-hard之类的题目.. 鐣欏鐢宠璁哄潧-涓€浜╀笁鍒嗗湴
33 设计一个SparseVector (就是一个超长的vector,大部分elements都是0)的
class,实现dot product的操作。follow-up1:如果一个vector很长(millionsof non-
zeros), 另一个vector很短(hundredsof  non-zeros),如何优化。
follow-up2:如何利用index之间的关系(比如设计class的时候规定按照递增的原则存non-
zeroelements的index)进一步优化。
34 system Design:设计一个K recent contact 的service,就是当用户把鼠标点到
chat对话框的时候,自动弹出K个最近的联系人。follow-up是如果要弹出K个最熟悉的
人怎么设计,以及资源估计(需要多少台机器来做数据存储,多少个处理request等等
)。

35 design准备:板上有几个design总结贴,非常管用。我就是照着 flamingos和beidapig
的两个总结贴,大概看了看,学习了不少知识。
http://www.mitbbs.com/article_t/JobHunting/32777529.html
http://www.mitbbs.com/article_t/JobHunting/32984309.html
补充内容 (2016-5-20 02:51):
面试经验谈(facebook,airbnb,google,linkedin,amazon
http://www.1point3acres.com/bbs/ ... D311%26sortid%3D311

FB 面经 phone & onsite  攻略 附录题库呦 
http://www.1point3acres.com/bbs/thread-1910...
. 1point3acres.com/bbs
补充内容 (2016-5-20 02:52):.鐣欏璁哄潧-涓€浜�-涓夊垎鍦�
airbnb 面经 phone interview & onsite 附录题库呦  http://www.1point3acres.com/bbs/ ... D311%26sortid%3D311

补充内容 (2016-5-20 02:52):. visit 1point3acres.com for more.
lz的刷题攻略。。 http://www.1point3acres.com/bbs/ ... D311%26sortid%3D311

补充内容 (2016-5-20 02:53):
补充的几个帖子里 有高频的机经(design & 算法)

http://yaozonggao.com/blog/?p=73

1. How would add new Facebook members to the database of members, and code their relationships to others in the database?
2. If you were an animal what kind would you be and why?
3. What is the difference between Facebook ads and Google Ads?
4. Should Facebook be available in China?
5. What do you see as Facebook’s biggest challenge in the next five years?
6. What is the limitation of certain facebook features? How do you improve them?
http://www.1point3acres.com/bbs/thread-137068-1-1.html
5/11/2015 Phone Screen: 
很水的两道题:1) move all non-zero elements to left. 2) find first buggy version 面完HR通知我总部没坑了,就把我扔给seattle office的HR了。。
JEDI,这轮没什么好说的,瞎扯淡,给的算法题是给一个string由一堆单词加上不等的空格分隔而成,让做一下处理使得最后输出每个单词间只相隔一个空格。. 1point 3acres 璁哄潧
第二轮:
NINJA,这轮就开始坑爹了,是个三哥面的,上来就一副冷漠+蛋疼的表情,给了个copy random list的题,我一看我嚓原题啊,肯定是拿来warm up的,快速给三哥讲一遍用hashmap的解法,准备开写呢,只见三哥蛋蛋的看着我,来了一句:“恩,很好,但是有木有更好的解法?“我一听,整个内心就顿时是崩溃的。。这是要我写O(1) space解法的节奏啊。。。我虽然leetcode刷了好几遍,但是这题的O(1) space解法早就忘得一干二净。。原因在于之前面试也遇到过几次这道题,但是面试官都是只要hashmap的解法,我后来准备的时候也觉得O(1) space的解法也算是一种比较tricky的解法,实际面试的时候上来就写这种解法很明显就是背题啊。。也就再没写过这种解法了。。所以当时我很想给面试官做出一种”你特么是在逗我么“的表情,但是还是忍住了。。最后还是自己YY出了一个解法,但是是那种不能处理random pointer指向之前的结点的解法。也把代码写出来了,三哥看了看觉得木有BUG,然后就蛋蛋的跟我说恩挺好,时间到了,你下去再好好想想能完全解决这个问题的O(1) space的算法吧,有啥问题要问我?不问我闪啦。 我也就蛋蛋的看着他装模作样的问了个bootcamp的问题。。。
这轮又是坑爹,按照HR的说法这轮应该是system design,但是三哥进来又给我出了道算法题。。。我当时有点疑惑,但是还以为FB看我经验没满一年,把我的design面换成coding了。。也就没表示什么,算法题是吧,写!题目是给一个string,一个set of string, 问string里面是否包含一个substring,使得这个substring的任意一个prefix + suffix能组合成set里面的任意一个string,能就返回true,否则返回false。写到最后写出了个小BUG,而且三哥提醒后找了半天没找出来。。。最后发现是有个substring()没给end index。。。


是这样,我少说了个条件,输入除了一个string和一个set of string,还有个整形变量len表示set里面每个string的长度(也就是说set里的string长度都是一样的)。比如input string is "whoisyourdaddy", input set 包含两个 string "whu" and "ddy",那么function应该返回true,因为给的input string里面的substring "whoisyou" 的 prefix "wh" 和 suffix "u" 组成了 "whu",而另一个substring "daddy" or "ddy" 的 prefix "d" 和 suffix "dy" 组成了 "ddy",因此这个例子里set里面所有的string都可以在input string里面找到一个substring的一个prefix+suffix组合构成。

第四轮:-google 1point3acres
这轮是个国人大哥,进来给我说好这轮是pirate,也就是system design!我当时就有点懵了,然后问他是不是面试换顺序了?他跟我说木有啊。然后我问他那这一轮是最后一轮?他跟我说不是啊,这一轮完了还有一轮ninja呐。我当时心里就有无数草泥马奔腾而过。。国人大哥也是不留情面,问了道large scale下怎么设计一个根据关键词查询status的service。我自然又是一顿瞎扯,神马invert index, consistent hashing, 想到什么扯什么。然而这并没有什么卵用。。不论扯到什么大哥都要刨根问底,我到最后就完全招架不住了。。大哥的表情也就越来越蛋疼了。。这轮结束后我觉得基本就没戏了,design面这么烂基本是硬伤,弥补不了了。
第五轮:
上轮被虐的奄奄一息,马上就又来了两个geek大叔补刀了。。一道determine if there is a subarray in the given array that sum up to a given target,一道trie上面的regex search。。。我第一道写得其实还挺快,但是举例test case给geek大叔讲通代码花了不少时间,最后第二道题只剩15分钟,真是风一般的速度把第二题写了个差不多。。geek大叔看上去态度模棱两可,也是一副冷冷+蛋蛋的表情。。。




No comments:

Post a Comment

Labels

GeeksforGeeks (959) Algorithm (811) LeetCode (630) to-do (595) Classic Algorithm (334) Review (327) Classic Interview (299) Dynamic Programming (262) Google Interview (224) LeetCode - Review (224) Tree (146) POJ (137) Difficult Algorithm (136) EPI (127) Different Solutions (118) Bit Algorithms (110) Cracking Coding Interview (110) Smart Algorithm (109) Math (91) HackerRank (85) Lintcode (83) Binary Search (73) Graph Algorithm (73) Interview Corner (61) Greedy Algorithm (59) List (58) Binary Tree (56) DFS (54) Algorithm Interview (53) Codility (52) ComProGuide (52) Advanced Data Structure (51) LeetCode - Extended (47) USACO (46) Geometry Algorithm (44) BFS (43) Data Structure (42) Mathematical Algorithm (42) ACM-ICPC (41) Interval (38) Jobdu (38) Recursive Algorithm (38) Stack (38) String Algorithm (38) Binary Search Tree (37) Knapsack (37) Codeforces (36) Introduction to Algorithms (36) Matrix (36) Must Known (36) Beauty of Programming (35) Sort (35) Array (33) prismoskills (33) Segment Tree (32) Space Optimization (32) Trie (32) Union-Find (32) Backtracking (31) HDU (31) Google Code Jam (30) Permutation (30) Puzzles (30) Array O(N) (29) Data Structure Design (29) Company-Zenefits (28) Microsoft 100 - July (28) to-do-must (28) Random (27) Sliding Window (26) GeeksQuiz (25) Logic Thinking (25) hihocoder (25) High Frequency (23) Palindrome (23) Algorithm Game (22) Company - LinkedIn (22) Graph (22) Queue (22) DFS + Review (21) Hash (21) TopCoder (21) Binary Indexed Trees (20) Brain Teaser (20) CareerCup (20) Company - Twitter (20) Pre-Sort (20) Company-Facebook (19) UVA (19) Probabilities (18) Codercareer (16) Company-Uber (16) Game Theory (16) Heap (16) Shortest Path (16) String Search (16) Topological Sort (16) Tree Traversal (16) itint5 (16) Follow Up (15) Iterator (15) Merge Sort (15) O(N) (15) Difficult (14) Number (14) Number Theory (14) Post-Order Traverse (14) Priority Quieue (14) Amazon Interview (13) BST (13) Basic Algorithm (13) Bisection Method (13) Codechef (13) Majority (13) mitbbs (13) Combination (12) Computational Geometry (12) KMP (12) Long Increasing Sequence(LIS) (12) Modify Tree (12) Reconstruct Tree (12) Reservoir Sampling (12) 尺取法 (12) AOJ (11) DFS+Backtracking (11) Fast Power Algorithm (11) Graph DFS (11) LCA (11) LeetCode - DFS (11) Ordered Stack (11) Princeton (11) Tree DP (11) 挑战程序设计竞赛 (11) Binary Search - Bisection (10) Company - Microsoft (10) Company-Airbnb (10) Euclidean GCD (10) Facebook Hacker Cup (10) HackerRank Easy (10) Reverse Thinking (10) Rolling Hash (10) SPOJ (10) Theory (10) Tutorialhorizon (10) X Sum (10) Coin Change (9) Lintcode - Review (9) Mathblog (9) Max-Min Flow (9) Stack Overflow (9) Stock (9) Two Pointers (9) Book Notes (8) Bottom-Up (8) DP-Space Optimization (8) Divide and Conquer (8) Graph BFS (8) LeetCode - DP (8) LeetCode Hard (8) Prefix Sum (8) Prime (8) System Design (8) Tech-Queries (8) Use XOR (8) 穷竭搜索 (8) Algorithm Problem List (7) DFS+BFS (7) Facebook Interview (7) Fibonacci Numbers (7) Game Nim (7) HackerRank Difficult (7) Hackerearth (7) Interval Tree (7) Linked List (7) Longest Common Subsequence(LCS) (7) Math-Divisible (7) Miscs (7) O(1) Space (7) Probability DP (7) Radix Sort (7) Simulation (7) Suffix Tree (7) Xpost (7) n00tc0d3r (7) 蓝桥杯 (7) Bucket Sort (6) Catalan Number (6) Classic Data Structure Impl (6) DFS+DP (6) DP - Tree (6) How To (6) Interviewstreet (6) Knapsack - MultiplePack (6) Level Order Traversal (6) Manacher (6) Minimum Spanning Tree (6) One Pass (6) Programming Pearls (6) Quick Select (6) Rabin-Karp (6) Randomized Algorithms (6) Sampling (6) Schedule (6) Suffix Array (6) Threaded (6) Time Complexity (6) reddit (6) AI (5) Art Of Programming-July (5) Big Data (5) Brute Force (5) Code Kata (5) Codility-lessons (5) Coding (5) Company - WMware (5) Crazyforcode (5) DFS+Cache (5) DP-Multiple Relation (5) DP-Print Solution (5) Dutch Flag (5) Fast Slow Pointers (5) Graph Cycle (5) Hash Strategy (5) Immutability (5) Inversion (5) Java (5) Kadane - Extended (5) Kadane’s Algorithm (5) Matrix Chain Multiplication (5) Microsoft Interview (5) Morris Traversal (5) Pruning (5) Quick Partition (5) Quora (5) SPFA(Shortest Path Faster Algorithm) (5) Subarray Sum (5) Traversal Once (5) TreeMap (5) jiuzhang (5) to-do-2 (5) 单调栈 (5) 树形DP (5) 1point3acres (4) Anagram (4) Approximate Algorithm (4) Backtracking-Include vs Exclude (4) Brute Force - Enumeration (4) Chess Game (4) Company-Amazon (4) Consistent Hash (4) Convex Hull (4) Cycle (4) DP-Include vs Exclude (4) Dijkstra (4) Distributed (4) Eulerian Cycle (4) Flood fill (4) Graph-Classic (4) HackerRank AI (4) Histogram (4) Kadane Max Sum (4) Knapsack - Mixed (4) Knapsack - Unbounded (4) Left and Right Array (4) MinMax (4) Multiple Data Structures (4) N Queens (4) Nerd Paradise (4) Parallel Algorithm (4) Practical Algorithm (4) Pre-Sum (4) Probability (4) Programcreek (4) Quadtrees (4) Quick Sort (4) Spell Checker (4) Stock Maximize (4) Subsets (4) Sudoku (4) Sweep Line (4) Symbol Table (4) TreeSet (4) Triangle (4) Water Jug (4) Word Ladder (4) algnotes (4) fgdsb (4) 最大化最小值 (4) A Star (3) Abbreviation (3) Algorithm - Brain Teaser (3) Algorithm Design (3) Anagrams (3) B Tree (3) Big Data Algorithm (3) Binary Search - Smart (3) Caterpillar Method (3) Coins (3) Company - Groupon (3) Company - Indeed (3) Cumulative Sum (3) DP-Fill by Length (3) DP-Two Variables (3) Dedup (3) Dequeue (3) Dropbox (3) Easy (3) Edit Distance (3) Expression (3) Finite Automata (3) Forward && Backward Scan (3) Github (3) GoLang (3) Include vs Exclude (3) Joseph (3) Jump Game (3) Knapsack-多重背包 (3) LeetCode - Bit (3) LeetCode - TODO (3) Linked List Merge Sort (3) LogN (3) Maze (3) Min Cost Flow (3) Minesweeper (3) Missing Numbers (3) NP Hard (3) Online Algorithm (3) Pascal's Triangle (3) Pattern Match (3) Project Euler (3) Rectangle (3) Scala (3) SegmentFault (3) Stack - Smart (3) State Machine (3) Streaming Algorithm (3) Subset Sum (3) Subtree (3) Transform Tree (3) Two Pointers Window (3) Warshall Floyd (3) With Random Pointer (3) Word Search (3) bookkeeping (3) codebytes (3) Activity Selection Problem (2) Advanced Algorithm (2) AnAlgorithmADay (2) Application of Algorithm (2) Array Merge (2) BOJ (2) BT - Path Sum (2) Balanced Binary Search Tree (2) Bellman Ford (2) Binomial Coefficient (2) Bit Mask (2) Bit-Difficult (2) Bloom Filter (2) Book Coding Interview (2) Branch and Bound Method (2) Clock (2) Codesays (2) Company - Baidu (2) Complete Binary Tree (2) DFS+BFS, Flood Fill (2) DP - DFS (2) DP-3D Table (2) DP-Classical (2) DP-Output Solution (2) DP-Slide Window Gap (2) DP-i-k-j (2) DP-树形 (2) Distributed Algorithms (2) Divide and Conqure (2) Doubly Linked List (2) GoHired (2) Graham Scan (2) Graph - Bipartite (2) Graph BFS+DFS (2) Graph Coloring (2) Graph-Cut Vertices (2) Hamiltonian Cycle (2) Huffman Tree (2) In-order Traverse (2) Include or Exclude Last Element (2) Information Retrieval (2) Interview - Linkedin (2) Invariant (2) Islands (2) Knuth Shuffle (2) LeetCode - Recursive (2) Linked Interview (2) Linked List Sort (2) Longest SubArray (2) Lucene-Solr (2) MST (2) MST-Kruskal (2) Master Theorem (2) Math-Remainder Queue (2) Matrix Power (2) Minimum Vertex Cover (2) Negative All Values (2) Number Each Digit (2) Numerical Method (2) Object Design (2) Order Statistic Tree (2) Palindromic (2) Parentheses (2) Parser (2) Peak (2) Programming (2) Range Minimum Query (2) Reuse Forward Backward (2) Robot (2) Rosettacode (2) Scan from right (2) Search (2) Shuffle (2) Sieve of Eratosthenes (2) SimHash (2) Simple Algorithm (2) Skyline (2) Spatial Index (2) Stream (2) Strongly Connected Components (2) Summary (2) TV (2) Tile (2) Traversal From End (2) Tree Sum (2) Tree Traversal Return Multiple Values (2) Word Break (2) Word Graph (2) Word Trie (2) Young Tableau (2) 剑指Offer (2) 数位DP (2) 1-X (1) 51Nod (1) Akka (1) Algorithm - How To (1) Algorithm - New (1) Algorithm Series (1) Algorithms Part I (1) Analysis of Algorithm (1) Array-Element Index Negative (1) Array-Rearrange (1) Auxiliary Array (1) Auxiliary Array: Inc&Dec (1) BACK (1) BK-Tree (1) BZOJ (1) Basic (1) Bayes (1) Beauty of Math (1) Big Integer (1) Big Number (1) Binary (1) Binary Tree Variant (1) Bipartite (1) Bit-Missing Number (1) BitMap (1) BitMap index (1) BitSet (1) Bug Free Code (1) BuildIt (1) C/C++ (1) CC Interview (1) Cache (1) Calculate Height at Same Recusrion (1) Cartesian tree (1) Check Tree Property (1) Chinese (1) Circular Buffer (1) Code Quality (1) Codesolutiony (1) Company - Alibaba (1) Company - Palantir (1) Company - WalmartLabs (1) Company-Apple (1) Company-Epic (1) Company-Salesforce (1) Company-Snapchat (1) Company-Yelp (1) Compression Algorithm (1) Concurrency (1) Convert BST to DLL (1) Convert DLL to BST (1) Custom Sort (1) Cyclic Replacement (1) DFS-Matrix (1) DP - Probability (1) DP Fill Diagonal First (1) DP-Difficult (1) DP-End with 0 or 1 (1) DP-Fill Diagonal First (1) DP-Graph (1) DP-Left and Right Array (1) DP-MaxMin (1) DP-Memoization (1) DP-Node All Possibilities (1) DP-Optimization (1) DP-Preserve Previous Value (1) DP-Print All Solution (1) Database (1) Detect Negative Cycle (1) Directed Graph (1) Do Two Things at Same Recusrion (1) Domino (1) Dr Dobb's (1) Duplicate (1) Equal probability (1) External Sort (1) FST (1) Failure Function (1) Fraction (1) Front End Pointers (1) Funny (1) Fuzzy String Search (1) Game (1) Generating Function (1) Generation (1) Genetic algorithm (1) GeoHash (1) Geometry - Orientation (1) Google APAC (1) Graph But No Graph (1) Graph Transpose (1) Graph Traversal (1) Graph-Coloring (1) Graph-Longest Path (1) Gray Code (1) HOJ (1) Hanoi (1) Hard Algorithm (1) How Hash (1) How to Test (1) Improve It (1) In Place (1) Inorder-Reverse Inorder Traverse Simultaneously (1) Interpolation search (1) Interview (1) Interview - Easy (1) Interview - Facebook (1) Isomorphic (1) JDK8 (1) K Dimensional Tree (1) Knapsack - Fractional (1) Knapsack - ZeroOnePack (1) Knight (1) Kosaraju’s algorithm (1) Kruskal (1) Kruskal MST (1) Kth Element (1) Least Common Ancestor (1) LeetCode - Binary Tree (1) LeetCode - Coding (1) LeetCode - Detail (1) LeetCode - Related (1) LeetCode Diffcult (1) Linked List Reverse (1) Linkedin (1) Linkedin Interview (1) Local MinMax (1) Logic Pattern (1) Longest Common Subsequence (1) Longest Common Substring (1) Longest Prefix Suffix(LPS) (1) Manhattan Distance (1) Map && Reverse Map (1) Math - Induction (1) Math-Multiply (1) Math-Sum Of Digits (1) Matrix - O(N+M) (1) Matrix BFS (1) Matrix Graph (1) Matrix Search (1) Matrix+DP (1) Matrix-Rotate (1) Max Min So Far (1) Median (1) Memory-Efficient (1) MinHash (1) MinMax Heap (1) Monotone Queue (1) Monto Carlo (1) Multi-Reverse (1) Multiple DFS (1) Multiple Tasks (1) Next Successor (1) Offline Algorithm (1) PAT (1) Partition (1) Path Finding (1) Patience Sort (1) Persistent (1) Pigeon Hole Principle (1) Power Set (1) Pratical Algorithm (1) Probabilistic Data Structure (1) Proof (1) Python (1) Queue & Stack (1) RSA (1) Ranking (1) Rddles (1) ReHash (1) Realtime (1) Recurrence Relation (1) Recursive DFS (1) Recursive to Iterative (1) Red-Black Tree (1) Region (1) Regular Expression (1) Resources (1) Reverse Inorder Traversal (1) Robin (1) Selection (1) Self Balancing BST (1) Similarity (1) Sort && Binary Search (1) String Algorithm. Symbol Table (1) String DP (1) String Distance (1) SubMatrix (1) Subsequence (1) System of Difference Constraints(差分约束系统) (1) TSP (1) Ternary Search Tree (1) Test (1) Thread (1) TimSort (1) Top-Down (1) Tournament (1) Tournament Tree (1) Transform Tree in Place (1) Tree Diameter (1) Tree Rotate (1) Trie + DFS (1) Trie and Heap (1) Trie vs Hash (1) Trie vs HashMap (1) Triplet (1) Two Data Structures (1) Two Stacks (1) USACO - Classical (1) USACO - Problems (1) UyHiP (1) Valid Tree (1) Vector (1) Wiggle Sort (1) Wikipedia (1) Yahoo Interview (1) ZOJ (1) baozitraining (1) codevs (1) cos126 (1) javabeat (1) jum (1) namic Programming (1) sqrt(N) (1) 两次dijkstra (1) 九度 (1) 二进制枚举 (1) 夹逼法 (1) 归一化 (1) 折半枚举 (1) 枚举 (1) 状态压缩DP (1) 男人八题 (1) 英雄会 (1) 逆向思维 (1)

Popular Posts