一面:
算法:
1.实现LFU缓存 O(1)
2.长度为N的字符串数组,找出现次数TopK的字符串,出现次数相同用字典序 O(NlogK)
项目:
3.了解其他日志库吗?怎么实现的?
C++:
4.全局变量和局部变量的区别
5.内存分配的方式
6.基类析构函数为什么要设置为虚函数
7.vector和map底层,map为什么不用平衡二叉树
8.看过什么源代码吗?怎么实现的?
MySQL:
9.主从复制
10.如何实现日志回滚?binlog了解吗?
11.索引结构,为什么用b+树不用b树
OS:
12.I/O多路复用,LT/ET
13.进程和协程的区别
14.进程间通信方式
15.零拷贝,具体减少了什么拷贝
计网:
16.TCP如何实现可靠传输
其他:
17.了解消息队列吗?kafka,rabbitMQ?
最后一个题目:
18.1000亿个数如何取top10000
总结:一看到LFU就虚了,不过还是硬着头皮做,最后写出来的结构也不符合题意。第二个Topk直接用排序做的,复杂度不符合要求。当时感觉就凉了,但是面试官给我讲了正确的思路,然后问了项目和基础。基础这部分答得挺好的,有前面的面试经验,很多都是刚复习过。面完面试官还夸我基础不错。
然后十分钟内显示到二面。第二天刚上完课就接到二面电话了。
二面:
总共也就20分钟,主要问了两个项目,然后问我会不会分布式,微服务和容器。全都不会。说很快会出结果。然后第二天发现凉了。
总结一下,还是项目太简单,不会分布式,微服务,消息队列之类的东西。打算再准备一阵去投字节日常了。
全部评论
(6) 回帖