Chapter 55 Linkedin 2017 Interview Questions Part 2

55.2 Top 500 exceptions in 1 hour

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

Monitor system的这一轮我面的应该不具备代表性,因为shadow小哥问的太深了,我的解法: 四部分:1. 每个unit收集信息的,然后集中发送到一个collector 2. 处理信息的collector 3. data base 4. 从database读取信息的display system.讨论主要围绕database那个部分展开.load balancing,partition,replication.然后shadow小哥问的深了就涉及到linkedin他家自己系统里的“Router” , “Helix” 和“Zookeeper”.我面试前看了下他家的技术博客,你也可以看一下,挺有帮助的.data.linkedin.com

design monitor system partition 是说horizontal sharding 吗? 感觉是为了存exception 量太大而存在 replication 是为了太多的query 而需要的吗? easy use 能给个hint 吗?

https://github.com/linkedin/kafka-monitor
https://engineering.linkedin.com/blog/2016/05/open-sourcing-kafka-monitor
https://www.confluent.io/blog/stream-data-platform-1/

https://www.careercup.com/question?id=5641031379845120

http://www.jiuzhang.com/qa/12/

http://www.jiuzhang.com/qa/109/

这其实是个异常监控问题

Spark Streaming + Elasticsearch构建App异常监控平台

基于Lua+Kafka+Heka的Nginx Log实时监控系统

logstash联合python kafka进行异常数据监控

Flume+Kafka收集Docker容器内分布式日志应用实践

NginxLog实时监控系统总结

新浪是如何分析处理32亿条实时日志


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

55.4 270. Closest Binary Search Tree Value

5 rounds
1. Given a BST, find the closest k node in the tree. closest means node value.
2. Given number array and k, see if array could be divided to k buckets which all have same sum. Double sqrt(x).
3. Manager round..talking about experiences
4. Design Hangman
5. Tech talk

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

tree-traversal.html#closest-binary-search-tree-value-ii

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

55.5 Weighted Random

http://www.1point3acres.com/bbs/forum.php?mod=viewthread&tid=249822

第一轮是Manager面,我简历最上面的几个project没问,却问我写在最底下才一两行的小项目.我细节早就忘了.最后面试官就和我说不懂的东西不要写在简历上
第二轮两道算法.
1. 给一个数组,找到其中三个数可以组成三角形.一开始我用了O(n^2)的算法,后来想到因为只要返回一组结果,所以其实只要数组排好序后检查连续的三个数就可以了.
2. 设计一个可以O(1)添加key-value对、用key删除、用随机生成的index删除的数据结构,其实就是LC432
第三轮两道算法.
1. 按权重返回随机数.比如{4: 3, 2: 2, 1: 1},就是指4的权为3,2的权为2,1的权为1,那么返回4的概率是1/2.
2. 打印经过城市停车站的所有路线.比如城市0有一个车站X,城市1有A, B两个停车站,2有C, D, E,3有Y.那么从X到Y的所有路线有:
XY 经过1和2时不停车; XAY, XBY 在1停次车; XCY, XDY, XEY 在2停次车; XACY, XADY, XAEY, XBCY, XBDY, XBEY 在1, 2都停次车

我一开始用在一个城市停的结果加上在两个城市停的结果做,面试官就问我这是一个排列还是组合.我没明白他的意思,直到他点明其实这是个排列,就是在每个城市选择每个停车站各一次+不停.
午餐轮的面试官是位美国人,聊了很多东西,比如生活和工作的平衡啦,被微软收购后对公司有什么影响之类的.
第五轮系统设计,输出过去5分钟的, 1个小时的,24个小时的metrics.我的主要思路是按级存储,每分钟的metrics aggregate成5分钟的,然后12个5分钟的metrics aggregate成1小时的.
第六轮我本来以为是系统设计,结果是让我写Delay Scheduler.设计是用min heap存所有任务开始的时间,然后在添加任务或者到下一个任务开始的时候唤醒dispatch线程,根据堆顶任务的时间是否是当前时间决定是否执行任务.我平时写多线程的程序时都是照抄stack overflow的,结果面试的时候就写的磕磕碰碰的了,被面试官指出一大堆错.看来以后要就算是抄代码也要自己读懂了再抄.
第七轮来了两位一看就是senior level的工程师,但是似乎没有准备好要问什么问题.于是一开始先从设计一个可以查询数据的系统开始.我就提出直接用LAMP.然后就问如果增加了Query的QPS怎么办,增加了input的数据量怎么办,我就提到了用sharding啦,Load Balancer啦,Kafka啦之类的,然后分析trade off和计算了下需要的机器数量.
感觉linkedin的面试难度不算大,但是考察的方面特别多,不是靠刷几个月的题就行的.我平时学东西得过且过,不是很深入,以后是要好好改改了.

55.7 RTree/Quad Tree/Kd Tree

http://www.1point3acres.com/bbs/forum.php?mod=viewthread&tid=270116

11:00-12:00,一位面试官.题目是给了个地图,上面有很多点, 每个点是个object, x, y 坐标都给了, 比如{x: 5, y: 5} 已知 包含所有点的 array, 某一个点,和半径d, 写一个function 返回到这个点的距离小于或等于d 的所有点. 怎么优化.我当时答得是把整个地图分成小的区域,每一小块2d的正方形.然后找这个点所在的方块和周围的几个方块.这样就不用遍历地图里所有的点了.

55.8 design侦测恶意的封包

2017(1-3月) 码农类 硕士 - 内推 - Onsite |Other在职跳槽 Linkedin onsite:1. host manager2. 面经add/remove/removeRandom() ,interval题,followup call frequency变化后的结构3. lunch4. max points用double/string来当slope,max k values in a stream,followup滤掉重复的数5. technical communication6. design侦测恶意的封包,一直followup各种骇客的behavoir来破解系统

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