Interview Misc


http://www.cnblogs.com/EdwardLiu/p/5975748.html
给一个LinkedList环,给其中任一个节点的reference,求删去LinkedList中所有value=k的点
我的想法:假设给定的点事ListNode oneNode, 设置ListNode dummy = new ListNode(-1);
dummy.next = oneNode
然后扫描一次找到环里最后一个点,断链:ListNode end.next = null;
然后就开始扫描,删点
然后再扫描一次,将最后一个点.next指向开头
whatsapp OA还是写用merge sort to sort linkedlist,两年就没变过
http://www.1point3acres.com/bbs/thread-199063-1-1.html
美国小哥,实现word trie,insert和delete,我写的太快了,20min写完,继续follow up说delete one pass O(n)。然后尝试递归,没写完时间到了。
http://algobox.org/four-separated-number/
Find how many numbers of length n are there such that between the difference of adjacent digits are at least 4.
Example:
Given n = 5
Such numbers are 3951815951
http://algobox.org/balanced-parentheses/
Given a string s of parentheses, return the minimum number of parentheses that need to be inserted to make it well formed.
A well formed (balanced) string of parentheses is defined by the following rules:
1. The empty string is well formed.
2. if s is well formed, then '('+s+')' is also well formed.
3. if s and t are well formed, then their concatenation s+t is also well formed.
http://www.1point3acres.com/bbs/thread-135720-1-1.html
一轮system design 一轮cultral fit, 中间有ceo & co-founder 一起吃饭。
第一轮和第二轮是coding,算法题很简单,都是常见题型.第一轮需要在电脑上coding(最好能run). 第二轮是直接白板. 这里值得一说的是这两轮的题目都不是原题,第二轮的面试官跟我说第一轮和他这轮的题目都是从他们实际工作中遇到的问题抽象提取出来的.这点还挺有意思的.
接下来跟ceo吃饭,问了我些behaivor 问题,例如why thumbtack, what's ur passion等等, 我也问了些ceo的问题,聊的挺开心。
第三轮: vp cultralfit vp刚从gg 跳过来三个月,之前 ggsenior director 我们就聊了聊我现在的proj,遇到哪些问题我怎么解决的,然后聊了聊thumbtacktech stack他们遇到什么问题之类,这轮聊的也挺开心。. 涓€浜�-涓夊垎-鍦帮紝鐙鍙戝竷第四轮:coding 两个面试官,一个主面一个感觉像是shallow, 比较有意思的是那个shallow的居然是HM. 主面官上来问了我很ML的问题,对我MLproj很感兴趣, 后来居说这个面试官对ML一点不懂, 估计他就是纯粹感兴趣吧, 当然楼主我也ML的小学生,不知道他有没有懂我说的.  然后他让我写一个很简单的算法题,leetcode 中等偏下的难度. 我首先跟面试官司讨论了下题目的意思然后例了些examples,然后说了说解题的思路,面试官说思路是对的然后就让我写,写完后我解释了下我的代码,主面官说it works, 这个时候shallow的HM表示好像没怎么看懂, 我就稍微解释了下,然后他点了点头说make sense, 我当时其实并没有意识到这个shallow的原来是HM,我以为他是一个小兵,也就有些怠慢他没有进一步解释.然后就开始聊了聊他们工作的事情.
第五轮: system design, design一个跟twitter差不多的类型的app。这一轮可能是我面的最出彩的一轮,我先上最经典的3tier架构, 然后我自己不断的分析指出哪里会是瓶颈,如何优化,然后最后面试的小哥说我们thumbtack就是用这种模式,但是twitter可能会用更复杂点的架构,然后我们一起讨论,他也propose 了一些idea,我们一起探讨最后弄出了一个完整的他满意的design-google 1point3acres面完system design就是安排 hr聊天。

不过最终拿到了人生中最长的一封拒信,hr的feedback写的很详细也很真诚,大概意思是说很多人给了我strong,也有人给了no hire,他们debreif了好几次最终还是把我给拒了. 给我no hire的似乎有一个是hm,他的feedback是coding还行,但是comunication不好,所以给no hire. 我想可能是他那面我没有对他很认真的解释他没明白的地方吧.还是挺遗憾的,挺好的机会
第二轮面试是偏java方向的面试,主要问了很多java的基础如:多线程,Collection,HashMap等等问题,后来还聊了一点Spring的内部实现机制等,当然少不了一道算法题,但是没想出来感觉很遗憾。
2.讲一讲快排的原理
这个也简单,我一开始是想用“挖空”这个思想来讲的不过有点挫了给讲出问题来力,后来直接用普通的说法直接过了。
3.Http请求是哪个层的?是有链接还是无链接的?Http缓存是什么?
应用层,有链接 基于TCP/IP嘛 缓存当时答不上来,因为学过DNS缓存却没学过HTTP缓存。

4.操作系统的虚拟内存问题
这个当时真答不上来,大二上学期学的,现在都给忘得差不多。
5.哈希表包括什么?区别呢?
HashMap HashTable 后者线程安全(当时说成线性安全 囧)

6.http的常用Header
这个当时也就说出两个setContentType/setCharCoding 因为每次用的时候都是临时查询,哎太不专业了。

7.常用的Http返回码
200 ok 404 NOT FOUND 500
其他的一时没想起来。

8.cache机制的理解
首先我说了cache的几种目标,比如速度、稳定性、及时性 然后经过前辈的指点还有一个命中率。
接着又问我如果自己设置一个Cache系统要怎么设计?
我一开始说了用数据库建立一张表,纪录点击数,如果访问量(点击数)够高的话就把它放进cache。
这个方法应该是可以的,但略显啰嗦,所以前辈又说你能不能不依赖数据库建立一个呢?
这个我就没答上来了。
9.Spring的核心
IOC并且我简述了一下IOC 以及DI的意义,除此之外还有一个核心,但是我当时无论如何也没想到。就是AOP,因为这个面向切片编程自己仅仅是通过书中学习并没使用,简单的说了下它的作用一般就是用来在不改动代码的情况下修改某些需求比如添加日志功能等。
1.给平面一堆点,把所有在同一条直线上的点group在一起,求出所有的group
2.一种encoding的方法,如果一个byte第一个bit是0,比如 00000000,那它自己表示一个字符,如果一个byte第一个bit是1,比如 10000000,那它和它后面紧跟的byte表示一个字符,现在给一个byte array,判断最后一个字符是一个byte还是两个byte组成。
3.parse message from byte stream,message format是前4个bytes组成的int值表示 message的长度L,然后后面连续的L个byte是message真正的内容,每个message都是这样表示,需要一边读byte stream一边parse每个message
4. 两个table做join有哪几种方法,分别有哪些drawback
5. merge two sorted list
6. sqrt(double number, double epsilon)
7. auto completion implementation using trie
8. edit distance
9. Implement blockingqueue
10. how is a hive query transferred to mapreduce jobs
Onsite:
1. given a list of pairs, pair.first 表示parent, pair.second表示child, reconstruct the tree, return the root node.
2. auto completion - design the service
3. design a service, accept stream of events, each event has a type and timestamp, need to support the query of top k most frequent types in a query specified [start, end] time range.
4. closest number to target in BST
5. validate soduku / solve soduku, and optimizations
6. 给一个json object,给一个wildcard path with ‘?’ as arbitrary name,比如a.?.b 找到所有符合path的objects
Apple一般onsite的时候4轮tech interview,中午的时候将来的manager带着吃午饭。
如果tech这4轮面的好会有第5轮见到hiring manager,如果有这一轮基本说明offer没啥问题了,这轮会是一堆behavior。如果第5轮也没啥问题会有第6轮见大boss,继续behavior,会问之前做过的project有多牛叉,会吹就行。
1.用trie来解决求dictionary里面所有符合given prefix的word。然后又扩展到prefix里面有wildcard的情况,然后继续讨论如果要design a system做这个事情怎么搞,需要注意哪些问题。

1. OOD Restaurant Reservation System

2. Merge K Sorted List

3. K Sized Sliding Window Sum/Minimum Value

4. 给一个css file里面很多class,然后class name里面其实很多重复的,怎么 compress用尽量最小size的string来表示,这样传输的byte比较少。

5. shorten url system design

6. longest palindromic substring 

7. robot moving from topleft to bottomright corner of a matrix,matrix里面有些cell是障碍物不能通过,只能往下或者往右走,有多少种方法。

1.topological sort

2.design web crawler system,how to scale,what would be the bottle neck and how to solve the problem

3. 如何用semaphore或者condition variable实现3个process p1, p2, p3,p2必须要p1结束才能运行,p3必须要p2结束才能运行

4. bloom filter 如何implement,estimate false rate

5. what is the best design pattern do you think and why
1. 两个binary tree,每个node存的值有两种可能,1或者0,把两个tree对应node做or操作。
极为简单,扯了一下immutable data structure然后聊了一会之前做的东西就过了。
1. 纯聊project和讨论他们现有的data ingestion架构,刚好他们最近想用Kafka所以就这个话题聊了一个小时,最后没时间做题就结束了

given a list of intervals,query if another interval is totally covered by the list of intervals。

totally covered是指整个区间都被某些已有的区间 cover了。

比如如果有 list of intervals = 【(1, 4),(2,8)】

given interval【3,6】就被完全cover了。

然后扩展到design a system来做这个事情,可以query,也可以insert interval,假设query操作的频率远远大于insert操作,并且interval的数量非常非常多。

1. 有意思的题目1,设计Bi-directional LRU cache data structure,既可以lookup key to get value,也可以lookup value to get key,还支持set(key, value)操作,后面又加了条件,concurrent的情况下,会有什么问题,如何改进,假如set这个操作的频率远远小于get这个操作的频率,需要写代码实现。

3. given a list of sets,find all pair of sets having any intersection

4. 有意思的题目2,设计caltrain system,要实现caltrain上车下车刷卡扣钱整个功能,assume每个station都跟一个central server相连,要处理如果有networkpartition怎么办,eventually车费还是要charge到账户上,但是不能影响partition的station正常运作。要处理某些人下车没刷卡怎么办,followup可以非常多

5. 有意思的题目3,仍然是设计一个cocurrent环境下的time leased cache,但是有些区别,假如delete操作是一个daemon thread来做不用太多考虑,但是get(key)操作的逻辑是如果key不在cache里面,需要一个非常expensive的操作把对应value load进来,如何让这个load的操作对同一个key尽量少发生,需要写代码实现。
给一个array,问有没有duplicate
follow up1,只要index的距离 < k并且value相同就算duplicate
follow up2,只要index的距离 < k并且value的绝对值差 < d 就算duplicate'
follow up3,follow up2能不能有time complexity O(n)的解?
1. OOD astroid game,就是飞机打石块的游戏,石块可以任意形状可以移动,飞机撞上就挂了,飞机可以发射子弹,子弹打上石块会把石块分成多个小石块按照不同方向和速度移动。要写伪代码。
2. 每个person有一个list of intervals,表示busy的时间段,问最busy的一段时间分别都是谁busy。
3. 一个描述起来不算简单的题目,但是算法不难,在版上看到过但是细节记不清了,好像是给一堆stock profile然后算profit
4. 一个2d matrix,被分成好几个区域,区域之间都是value为0的cell,每一堆connected的非0cell算是一个区域,问和最大的区域是哪个,要设计API,怎么用json return结果。
5. system design又是 distributed key-value store,万年不变的题目,后来没啥好聊的只好跟面试官扯他们的那个atlas,distributed transaction layer,没办法想拿offer跪舔还是需要的。
1. 给一堆file,如何比较有效率的把内容完全相同的file group到一起,file可能非常大
2. 被人面过无数次的电话号码转成string,然后再word break那个题目
1. log_hit(), get_last_5mins_hits()那个题目,concurrent怎么搞
2. token bucket,假设每x秒提供一个token,然后外面可以申请任意数量的token,如果token不够就block,要求concurrent情况下,不能有专门的thread产生token,怎样用最简单的方法实现
3. web crawler,要分析可能的bottleneck,然后转化成concurrent运行的版本,写runnable代码。
OOD card deck,要现场deug,需要能运行
1. 问了我不少关于storm的问题,比如storm怎么保证exact once/at least once semantic,如何做timed window join,因为我简历上有相关的东西,然后让我用storm来做一个比较简单的sliding window count。
2. big integer multiplication,要求现场运行代码。
3. longest increasing subarray,longest increasing subpath in a tree,path只能从root到某个leaf
4. boggle game,given a boggle board and a dictionary,find all words on the board,
follow up,如果dictionay 不变但是board不停的变怎么优化
follow up,如果board不变但是dictionary不停的变怎么优化
5. given a matrix only containing 1 or 0,find how many rectangles are 4个角都是1
6. how to design a system to automatically detect hotspot on geo graph, a hotspot is an area such that 打车的request远多于available driver的数量
7. how to design a system to detect if dispatch algorithm has some bug,dispatch主要是收集所有打车request和available driver的信息然后决定哪个driver 哪个客人
1. 一个正整数可以表示成其他几个正整数的平方和,给任何一个正整数,求最少的那几个正整数,平方和是给定的数,比如14 = 1^2 + 2^2 + 3^2,如果给的数是14,应该返回(1,2,3)
2. 给一个dictionary,然后可以support的query是,给一个string,返回在dictionary里面包含给定string的所有character的最短的string
3. 如何设计google login system
4. web crawl的时候如何判断两个document是相同/相似的。
1. move all 0s to right end of the array
2. decode way
3. binary tree inorder iterator
4. determine if there is a subarray sum to target number
5. convert integer to string,1000 to “one thousand”
6. system design - design facebook music system,只需要design service tier,两个API
get_top_10_list_music_ids(int64 userid) - return top 10 most frequent
listened music ids for a given user last week. 这个call在load页面的时候要进行,所以对latency要求比较高。record(int64 userid, int64 musicid, int64 timestamp) - 每当user听一首歌,就需要记录下来,这个可以asynch进行,需要eventually consistent,但不需要每听一首歌马上就能反映到上一个call中。要做各种spec和resource的estimation。
7. 抄dropbox那个问题,get_hits_last_5mins(), record_hit(),但是后面又扯到system design,如何thread safe,如果是districuted syste怎么搞,能想到几种方法
8. behavior那一轮基本上围绕着的主题是,你之前碰到什么难解决的问题,怎么解决的,你学到了什么,production有过什么比较傻叉的bug,怎么避免的。你之前做项目有没有cross team的,你怎么说服其他team听你
http://myprogrammingpractices.blogspot.com/2015_06_01_archive.html
get average on sliding window, how to do it thread safe without lock
given a matrix has 0 in it, find an area that has largest sum
explain TCP/UDP protocol, how it works
design RPC API
how to do callback in java
lead suppose a communication protocol breaks on "X" letter, how do you encode a string.
phone1: Print all paths which sum to a given value in binary tree(including
negtive value)
         Implement hashtable
phone2:  LCA
         some basic question on Hadoop

onsite: 
        1.co-founder: implement concurrent hashmap, try your best to improve
performance

        3.: basic knowledge on REST api, DB transaction, ACID, CAP
                    design distributed K-V store                     reserve integer

各种刨根问底(她还真懂),到最后我把gossip protocol讲清楚了才有点笑容
phone:  restore binary tree from in-order/pre-order 
        string multiply
onsite: 1.ABC given “Zenefits is growing fast”, return "Zftienes is 
gwornig fsat"
          除了首位字母,中间顺序要完全随机,这道题上机写,要跑test。
          design a API how to render a progress bar
          design a login system(back end architecture)
        2.minimum window substring preserve order
          不是leetcode那道,完全不一样的解法。上机写,要能跑test。
phone: 1.given an order string "abc" check if "aabdccd" maintain the order
       "aabdccd" -> true;
       "abbca"   -> false;
        4.三哥 abbre word again... follow up是 word->w2d, 另一个wold->wo1d, 
也就是说不能group起来,每个都是unique的
http://myprogrammingpractices.blogspot.com/2015/06/from-mitbbs-sumo-logiccache-system.html
1. 字典里有大量words,给一个query,如果在字典里能找到one edit distance则返回那个word。followup是如果是k edit distance呢。不能对字典里的所有word做简单的预处理(产生所有可能的k edit以后的词加入字典)。

2. 设计带历史记录的哈希表。对于同一个key下出现过的多个value都记录,每个value都加个timestamp。查找时get(key, ts),输出value,其时间戳是在ts或者ts之前最近的。

个稍微麻烦点的是任意叉树的序列化和逆序列化。都要在codepad里跑过测试。
F: add two binary string, follow up是任意进制 (最多到16进制)
1.maximum depth of tree 热身
2.find number in rotated sorted array
3.把一个数,比如24,写成factor的乘积组合, 2*12, 2*2*3,。。。。(这道本来
不要求,只要说思路,但是我边说思路变写,很快就写完了)
   3. 把string转化成floating number(stof)
behavior question的最后烙印来了一道按列打印tree,follow up是不用hashmap存
node的水平距离,用vector存,如何做,onepass,不准先求树的width
1.max point on line/ (如何不是整数坐标如何处理,需要改写hashmap的compare) 
2.special container add/remove/removeRandom at O(1): array + hashmap

3.k-way sort given a stream iterator, vector<strream>,
4.product of other elements; 考虑1个0 和2个0 的情况
5.实现movemem( void* src, void* dest)

7.host manager那轮最后问了一个,如何在不影响功能的情况下,把一个data center的数据复制到另外一个新的data center去。

1. find all rotation symmetric numbers less than N digits,  16891 -> 16891, 
2. give integer, 12345, 返回 32154
    give a target  string and list of strings, find the longest string that 
has target as prefix, follow up, stream of target string, 用trie,每个节点保
留最长string信息。
3. integer array add one
    rotation abc->bcd->cde, give a list of strings, group them if them are 
rotations.
居然给我laptop,然后直接上面写,然后debug通过,给test case通过

4. given grid of colors, coordinate of a point and its color, find the 
perimeter of the region that has the same color of that point.
    print all morse code given the length constraints, short “*” takes one
, long “——“takes two. (find a bug in the code) 就是排列组合的典型题
5. design: chromecast, how to know which app can be supported? There is a 
cloud that can give the information to the chrome cast, appID, deviceID, 
cache design. 

然后追加的是如果其中一个array特别长一个比较短怎么做

解法:
对短数组里的每个元素在长数组里进行二分查找 当然,二分查找的空间也是逐步缩小的,虽然算法复杂度不会变
input: log file, <user name, login time, logout time>   
output: <time,number of users>
假定同一个user的login time, logout time 没有overlap: 

<"user a", 5,10>
<"user b", 6,8>
<"user c", 10,11>

output:
<5,1> <6,2> <8,1> <10,1> <11,0>

感觉可以把每个log file拆成两部分,放在一个class里面
比如: 
class Event {
int time,
boolean login
}

比如<"user a", 5,10>就分成
Event (5, true) 和 Event (10, false)

然后把所有Event按照时间排序
然后遍历一下,同时维护一个变量 numOfUsers
如果遇见event的login是true ,那么就 ++numOfUsers
如果是false 就 -- numOfUsers


不同场景,相同应用:
第一题
question: write a function that detects conflicts in given meeting schedules
input: N intervals, [(s1, e1), (s2, e2), ..]
output: return True if there's any conflict, False otherwise
解法:
1. sort intervals and compare, O(nlogn)
2. 开一个boolean[] array, 找出intervals里的earliest time和lastest time作为数组起始和结束。然后每个interval覆盖的区域都变成true,
再判断如果下一个interval的区域内有true出现,则有overlap

第二题
http://www.fgdsb.com/2015/01/30/meeting-rooms/
question: write a function that calculates the minimum number of rooms that can accommodate given meeting schedules
input: the same
output: # of rooms
解法:
可以建一个新的class,包含int time和boolean isStartTime, 然后将所有time排序,用一个numOfRooms计数,遇到isStartTime则+1, 否则-1,
在这个过程中记录numOfRooms的最大值

https://gist.github.com/gcrfelix/4d54afde1a7f88ca32ba
一个数如果能用两个立方数相加并且至少有两组这样的立方数pair,那么就是good number。print 小于等于n的所有good number。
分析时间复杂度

1. 创建数组,存储所有 ≤n 的立方数,value = index^3, 一共m个(m = n^1/3)--> O(m)
2. 在这m个立方数中,找两组和相等的
  2.1 一共会有m^2个可能的和(包括重复)
  2.2 sort --> O(m^2logm^2) = O(m^2logm). 
  2.3 scan 一遍,找consecutive的、相等的、长度≥2的子数组个数 --> O(m^2)
  (2.2和2.3也可以用hashmap做)
最后的总复杂度为O(m^2logm) ;带入m = n^(1/3) 得O(n^(2/3)logn)

第一题:check parentheses is balanced..。。写完了。。2个bugs..面试官提出了全是right parent case。。我说empty stack会return null..所以pop() != left parent 面试官貌似buy it了。。然后面完去看了下documentation。发现我错了。是会throw exception...
好像indexOf(c) == -1 写成了!=.
two sum
我从naive solution到sort到map。
但是途中面试官很急。。貌似一直等着map。。

看来面试官很想要我直接给最优答案。而不是慢慢优化。。
http://www.1point3acres.com/bbs/thread-148811-1-1.html
(3) Snapchat: 因为自己做的项目和S家很match, 他家一个Director在linkedin上联系,店面:print graph (bfs) + 变体.1point3acres缃�
onsite: eclipse 上现场写code运行, string encoding, party print(topological sorting)
Result: Reject (赞一下他家地理位置,临近la venice beach, 风景超赞)
uber电面面了两轮,分别是clone graph和控制request速率的一个经典题(token bucket)。zenefits也是两轮,一轮maximum subarray product, 还有一轮很水的一个dfs

bloomberg,给了电面,面了个求小于等于n的质数的个数和一个设计fraction类
coding第一轮level order traversal, number of island,还有一个忘了,
第二轮是面经上一个估计平面上所有圆的面积的题,当时居然没看面经,然后当场顺藤摸瓜写了出来。

其中有一个lc原题(类似clone graph的另外一个clone),另外token bucket又出现了,然后还有一个面经题
十月初fb校园面,bst in order iterator 和bst post order iterator
三个lc,一个merge sort变形。

给一堆treenode,判断他们是否组成一棵树,如果是,返回根节点,否则null。第二轮,一个consecutive sum,一个generate parenthesis。第三轮min window substring

第一题是shuffle mp3里面的playerlist,我就按照shuffle card的方法写了。

第二题,求出平面中多个圆的面积,给了各个圆的x,y坐标和半径r,圆和圆是可以重叠的,重叠部分面积不应该重复计算

圆的那个题楼主当时脑洞大开,用得方法是找一个矩形使所有圆都在这个矩形中,然后向矩形中射击大量的paintball(对,就是这么跟面试官说的……)算出圆被击中的百分比,然后乘以矩形面积就是了。
怎么判断paintball是否击中圆的呢?遍历一遍所有圆吗
traverse all the circles and check the distance between paintball and center

第三题就是10*10*10方块,问表面涂上颜色的话,没有涂颜色的有多少个

看楼主有过C的skills,我忙解释那个是好久以前的,简历也没有update,现在只会java,他貌似不太开心

然后问了一个design的问题。就是一个test car的系统,比如carA要test turn left, turn right, start, stop等等, carB要test speedUp, slowDown, turn angle等等,还会有carC,carD等等,要test可能不同,也可能有相同的部分。写一个class不管是哪个car都可以通过run这一个class来test.

设计题把测试方法抽象出接口,然后测试方法都继承它。车类持有多个测试方法类型的成员变量
public class testCar implements carA,carB{
    public test turn left{}
    public test turn right{}
    public test speedUp{}
    public test speedDown{}
}
然后咧?我当时就只知道应该是继承那两个car的测试方法,但是怎样才能完成任何一辆其他车的测试呢?


nterface carTest{-google 1point3acres
        void test();
}
class turnLeft implements carTest{
        public void test(){
                System.out.println("Turn Left");
        }
}
class Break implements carTest{
        public void test(){
                System.out.println("Break");
        }
}
class CarA {
        private carTest turnL = new turnLeft();
        private carTest Break = new Break();
        public void tests(){
                turnL.test();
                Break.test();
        }
}
这样可扩展性更强
当然抽象出Car类更好
测试项目多了可以用ArrayList存。


开始聊why bloomberg这样的问题,中间还聊了下我做的projects
开始又是design的问题,估计是和面试官交流过知道我哪里弱了,问我为什么java里面要有abstract clas,比如shape下面有三角形和圆形,为什么不直接用三角形和圆形要有一个shape class。最后楼主觉得答的也不全面,哭啊。之后问了两个sorted array里面找common integer
1)斐波那奇数列不用递归2)1到100缺一个数找到它3)leetcode上那道积水的题。
input1: thiisiisgoodd
output1: i i o d
input2: thiiisiisgoodd
output2: i
input3: this
output3: t h i s 
顺序输出出现连续次数最多的每个字符。
是韩国人[size=14.6666666666667px]面的。
刚开始用LinkedHashMap,写完之后他说能不能不用HashMap,只访问一遍。

http://yuanhsh.iteye.com/blog/2186418
Q1: print out prime factors. e.g., 20=2x2x5, 90=2x3x3x5
How to get a list of prime numbersQ2: LRU. How to implement linkedHashtable
Q3: draw architectural picture for a typical web stack.
Q4: implement thread pool

Polyvore面筋:
read-out number up to 1 million。cc150原题
char[][] matrix, find word. Can only go straight lines, no turns。leetcode原
题,典型的backtrack
一个脑筋急转弯,拿话说不清楚
reverse words in a string,各种拓展

box面筋:
1. 2-sum, 3-sum, 各种scale,复杂度
2. merge k sorted streams. leetcode原题,然后各种拓展
3. 判断一个tree是不是所有node value都一样,拓展到怎么找最大uni-value的tree
4. 活生生设计一个API,没经验的会死
5. tree level order 遍历,各种拓展
6. 臭名昭著的电梯设计,要写code
3、题都不难,刷完leetcode就有谱了。难的是各种拓展,经验啊水平啊就这里体现了
。我短期内拓展能提高到混的过去,源自:
1)板上讨论,尤其halfsea解说架构,peking2转行的那个swjtu zhaoce还有id长长的
几个
sorry不一一列了,等大牛讨论各种技术优劣,受益匪浅,看多了慢慢自己也能鹦鹉学舌了 
2)阅读各大公司engineering blog。首推f,t,能接触到很多概念,不懂的wiki查查
,也受益匪浅。


Labels

LeetCode (1432) GeeksforGeeks (1122) LeetCode - Review (1067) Review (882) Algorithm (668) to-do (609) Classic Algorithm (270) Google Interview (237) Classic Interview (222) Dynamic Programming (220) DP (186) Bit Algorithms (145) POJ (141) Math (137) Tree (132) LeetCode - Phone (129) EPI (122) Cracking Coding Interview (119) DFS (115) Difficult Algorithm (115) Lintcode (115) Different Solutions (110) Smart Algorithm (104) Binary Search (96) BFS (91) HackerRank (90) Binary Tree (86) Hard (79) Two Pointers (78) Stack (76) Company-Facebook (75) BST (72) Graph Algorithm (72) Time Complexity (69) Greedy Algorithm (68) Interval (63) Company - Google (62) Geometry Algorithm (61) Interview Corner (61) LeetCode - Extended (61) Union-Find (60) Trie (58) Advanced Data Structure (56) List (56) Priority Queue (53) Codility (52) ComProGuide (50) LeetCode Hard (50) Matrix (50) Bisection (48) Segment Tree (48) Sliding Window (48) USACO (46) Space Optimization (45) Company-Airbnb (41) Greedy (41) Mathematical Algorithm (41) Tree - Post-Order (41) ACM-ICPC (40) Algorithm Interview (40) Data Structure Design (40) Graph (40) Backtracking (39) Data Structure (39) Jobdu (39) Random (39) Codeforces (38) Knapsack (38) LeetCode - DP (38) Recursive Algorithm (38) String Algorithm (38) TopCoder (38) Sort (37) Introduction to Algorithms (36) Pre-Sort (36) Beauty of Programming (35) Must Known (34) Binary Search Tree (33) Follow Up (33) prismoskills (33) Palindrome (32) Permutation (31) Array (30) Google Code Jam (30) HDU (30) Array O(N) (29) Logic Thinking (29) Monotonic Stack (29) Puzzles (29) Code - Detail (27) Company-Zenefits (27) Microsoft 100 - July (27) Queue (27) Binary Indexed Trees (26) TreeMap (26) to-do-must (26) 1point3acres (25) GeeksQuiz (25) Merge Sort (25) Reverse Thinking (25) hihocoder (25) Company - LinkedIn (24) Hash (24) High Frequency (24) Summary (24) Divide and Conquer (23) Proof (23) Game Theory (22) Topological Sort (22) Lintcode - Review (21) Tree - Modification (21) Algorithm Game (20) CareerCup (20) Company - Twitter (20) DFS + Review (20) DP - Relation (20) Brain Teaser (19) DP - Tree (19) Left and Right Array (19) O(N) (19) Sweep Line (19) UVA (19) DP - Bit Masking (18) LeetCode - Thinking (18) KMP (17) LeetCode - TODO (17) Probabilities (17) Simulation (17) String Search (17) Codercareer (16) Company-Uber (16) Iterator (16) Number (16) O(1) Space (16) Shortest Path (16) itint5 (16) DFS+Cache (15) Dijkstra (15) Euclidean GCD (15) Heap (15) LeetCode - Hard (15) Majority (15) Number Theory (15) Rolling Hash (15) Tree Traversal (15) Brute Force (14) Bucket Sort (14) DP - Knapsack (14) DP - Probability (14) Difficult (14) Fast Power Algorithm (14) Pattern (14) Prefix Sum (14) TreeSet (14) Algorithm Videos (13) Amazon Interview (13) Basic Algorithm (13) Codechef (13) Combination (13) Computational Geometry (13) DP - Digit (13) LCA (13) LeetCode - DFS (13) Linked List (13) Long Increasing Sequence(LIS) (13) Math-Divisible (13) Reservoir Sampling (13) mitbbs (13) Algorithm - How To (12) Company - Microsoft (12) DP - Interval (12) DP - Multiple Relation (12) DP - Relation Optimization (12) LeetCode - Classic (12) Level Order Traversal (12) Prime (12) Pruning (12) Reconstruct Tree (12) Thinking (12) X Sum (12) AOJ (11) Bit Mask (11) Company-Snapchat (11) DP - Space Optimization (11) Dequeue (11) Graph DFS (11) MinMax (11) Miscs (11) Princeton (11) Quick Sort (11) Stack - Tree (11) 尺取法 (11) 挑战程序设计竞赛 (11) Coin Change (10) DFS+Backtracking (10) Facebook Hacker Cup (10) Fast Slow Pointers (10) HackerRank Easy (10) Interval Tree (10) Limited Range (10) Matrix - Traverse (10) Monotone Queue (10) SPOJ (10) Starting Point (10) States (10) Stock (10) Theory (10) Tutorialhorizon (10) Kadane - Extended (9) Mathblog (9) Max-Min Flow (9) Maze (9) Median (9) O(32N) (9) Quick Select (9) Stack Overflow (9) System Design (9) Tree - Conversion (9) Use XOR (9) Book Notes (8) Company-Amazon (8) DFS+BFS (8) DP - States (8) Expression (8) Longest Common Subsequence(LCS) (8) One Pass (8) Quadtrees (8) Traversal Once (8) Trie - Suffix (8) 穷竭搜索 (8) Algorithm Problem List (7) All Sub (7) Catalan Number (7) Cycle (7) DP - Cases (7) Facebook Interview (7) Fibonacci Numbers (7) Flood fill (7) Game Nim (7) Graph BFS (7) HackerRank Difficult (7) Hackerearth (7) Inversion (7) Kadane’s Algorithm (7) Manacher (7) Morris Traversal (7) Multiple Data Structures (7) Normalized Key (7) O(XN) (7) Radix Sort (7) Recursion (7) Sampling (7) Suffix Array (7) Tech-Queries (7) Tree - Serialization (7) Tree DP (7) Trie - Bit (7) 蓝桥杯 (7) Algorithm - Brain Teaser (6) BFS - Priority Queue (6) BFS - Unusual (6) Classic Data Structure Impl (6) DP - 2D (6) DP - Monotone Queue (6) DP - Unusual (6) DP-Space Optimization (6) Dutch Flag (6) How To (6) Interviewstreet (6) Knapsack - MultiplePack (6) Local MinMax (6) MST (6) Minimum Spanning Tree (6) Number - Reach (6) Parentheses (6) Pre-Sum (6) Probability (6) Programming Pearls (6) Rabin-Karp (6) Reverse (6) Scan from right (6) Schedule (6) Stream (6) Subset Sum (6) TSP (6) Xpost (6) n00tc0d3r (6) reddit (6) AI (5) Abbreviation (5) Anagram (5) Art Of Programming-July (5) Assumption (5) Bellman Ford (5) Big Data (5) Code - Solid (5) Code Kata (5) Codility-lessons (5) Coding (5) Company - WMware (5) Convex Hull (5) Crazyforcode (5) DFS - Multiple (5) DFS+DP (5) DP - Multi-Dimension (5) DP-Multiple Relation (5) Eulerian Cycle (5) Graph - Unusual (5) Graph Cycle (5) Hash Strategy (5) Immutability (5) Java (5) LogN (5) Manhattan Distance (5) Matrix Chain Multiplication (5) N Queens (5) Pre-Sort: Index (5) Quick Partition (5) Quora (5) Randomized Algorithms (5) Resources (5) Robot (5) SPFA(Shortest Path Faster Algorithm) (5) Shuffle (5) Sieve of Eratosthenes (5) Strongly Connected Components (5) Subarray Sum (5) Sudoku (5) Suffix Tree (5) Swap (5) Threaded (5) Tree - Creation (5) Warshall Floyd (5) Word Search (5) jiuzhang (5)

Popular Posts