先开始吐槽:
- 自打收到小米offer,我经过一段时间的考虑打算好好保留三方,反正不催我,而且渐渐觉得小米没我想象得那么好(得不到的永远在骚动)。
- 《海伯利安》,科幻神书。
正文:
前天58一面,昨天58二面(已过0点),是视频面试,我用手机tim。不得不说,面试官人不错,年纪稍大,我用手机面试他也没说什么。
因为是视频,所以内容比较少,都是涉及大规模项目的,再根据笔试题,我大致可以看出58想要什么样的人,以及其肯定处理的都是非常大规模的项目。
一面时问题1:实现缓存,LRU。
这真是直中命门,上次小米一面最后一个问题也是这个,我还记得面试官在我回答后把我“赶走,而我在经过挫折之后却很少吸取教训:),
幸运的是,面试官人比较温和,给了我比较长时间,我给出一种hash表+堆的解决方案,其get和set时间复杂度都是O(log n),我觉得还不错,但很明显不是标准答案,但至少我答得还算过得去。
(刚刚我在洗澡,心想怎么可能有更好的解决方案!然后我马上就想起双向链表+hash表:)(这大概就是aha,灵机一动),get和set都是O(1),而且还操作还特别简单。
问题2:accept时三次握手进行到哪一步?
我说:“我觉得大概第二步结束,但我还是想回答结束了。我对这块掌握的不好。”
问题3:C输入输出的缓冲。
比较简单,stdio提供了一层,内核提供了一层,所以printf经常被吐槽速度慢。
一面结束。
二面也差不多,等我想起来了再说。