腾讯WXG一面挂
WXG一面 8.24 1.5h
感觉还是不够深入,有些地方会混淆,难顶
大家有更好的回答可以交流一下
算法
- 找到链表环的入口,不存在返回nullptr(找到相交点,怎么计算相交点到入口的距离)(只找到了相交点)
1)先判断是否存在相交点
2)计算环的长度k(从相交点走一圈)
3)快指针先走k步,然后快慢一起走,相交为入口
- 最近公共父节点(a)
- 最长回文子串(a)
问题
- 介绍
- MySQL引擎的区别(Mylsam,Innodb)
- 频繁的插入时Innodb的性能更好么(一次可以读到内存里更多)
- Innodb写入时一定是往后追加么,在中间插入效率会更高么,为什么不用其他引擎
- 为什么要用B+树(和B树、线性存储对比了一下,内存能读更多)
- unordered_map底层实现,怎么解决hash冲突,stl中使用的哪个,扩容机制(一次探测、二次探测、链表法)
- 理解的右值
- 为什么会引入完美转发
- 了解过redis么
- 为什么redis很快,怎么实现的(单进程+epoll)
- redis是线程安全的么
- 怎么实现的分布式锁
- redis的数据结构,底层分别是怎么实现的
- zlist的底层原理,数据是怎么压缩的
- 进程间通讯方式(管道、共享内存、消息队列、信号)
- 管道怎么用,数据写到哪里(内核)
- 进程切换
- 电脑上多个app如何保证内存够用(虚拟内存、页表换入换出)
- 介绍项目
- 协程处理的是什么任务
- 项目中使用协程和线程的区别
- 什么情况适合用协程池,什么情况适合用线程池(IO密集协程,资源多线程)
- 定时器怎么做的(epoll_wait)
- 会发生大量epoll在等待么,测试过吞吐量么
- 序列化和反序列化怎么做的(protobuf)
- 如何实现一个高可靠、低延迟的定时器(给出的是发布订阅模式+redis+过期时间)
- 怎么做到高可靠(redis分布式)
- redis的高可靠性怎么保证,宕机时怎么保证任务不会丢失(选举机制)
- redis还没同步时就宕机了怎么办
- redis发生内存宕机时怎么保证高可靠(写日志,仿redo log)
- redis的持久化(RDB,AOF)
- 定时任务用redis怎么实现任务消费(发布订阅,绑定设置的键。轮询或回调。能不能用消息队列实现)