网易互娱二面
人生第一次二面是非技术面的~
异常紧张,表现一般般的,对我确实有点难度,何况不问Java
依稀记得我不会的题,被步步追问的难题,真的太难了~:
问题:要做一个分数排行榜
1、如何定位前100名?
2、定位某个人的某个排名~吧啦吧啦
经典的Topk问题,我先说了快排找第n大的数,时间复杂度是O(nlogn),说一下思想
能再优化吗?我只要前100名。
堆排序,说一下思想。也是O(nlogn)
难度开始了,时间复杂度太高了,优化一下。
提示了一点,还是没能说上来。(后面问了问了,其实只维护前100的堆就好)
回到这个问题,假设现在是10w个数据,你全部放在内存运算,linux或者windows内存不够怎么办?
虚拟内存,中级调度中的内存调度,虚拟内存~吧啦吧啦
虚拟内存也不够。
我真的不知道,但我知道内存管理的页面置换算法有LFU、LRU、FIFO,这块应该可以解决。
结束...
其他的就是简单的问题了:进程与线程的区别、聊项目(IO多路复用说一下)、了不了解计算机图形的 等等等
反问是问了前面那个topk问题,面试官说这块还可以深入很多,只维护前100的堆,但我现在加一个数据怎么办。可以继续思考
5天左右会出结果,许愿HR面