一面
手撕:删除链表的倒数第n个节点,注意设置一个虚拟头结点,还有delete回收资源。
常规八股。
二面
手撕:LRU缓存。面试官同样提醒要注意delete回收资源,还要写个析构函数,我是把双向链表的资源都释放了。
平时要注意这种如何main函数如何自己调用实现。
项目简单介绍了内存池,问了threadcache的结构,内部有哪些内容(要把三层cache的类型如何定义的再看看)
八股问的是虚函数,虚析构函数,模版编程(类型是在哪个阶段被确定,编译阶段),map和unorder_map,虚拟内存。
(突然想起来腾讯被问了协程是什么,记得看)
三面
手撕:删除二叉搜索树的节点。
没问八股,只让我介绍三个项目和遇到的问题和收获。
问了我认为的自己的优点和长处。
扩展题:给1T的数据,如何找到中位数。
扩展题参考回答
大概思想是根据最高位划分为两组数据,然后抛弃一组数据。然后再根据次高位划分为两组数据,再抛弃一组。直到数量可以被装载进内存进行排序。