编程语言方面
引用和指针区别?(效率方面和功能方面)
增加方法对导致类对象大小增加吗?
模板为什么需要写在头文件?
各种cast及其区别?
类默认生产那些函数?
如何防止或者检测内存泄漏?
智能指针如何解决循环引用?
inline函数在那些情况下不会内联?
delete[]做了那些事?
Java匿名内部类捕获的变量为什么要是final?
memcyp和memmove区别,手写memmove函数或者atoi?
static关键字作用?
手写二分搜索或者归并排序
算法
一组数中求中位数(50%分位数,即找到一个数50%比它小50%比它大)
求两个集合的Jaccard相似度(交集个数比并集个数)
判断线段是否相交
需要一个能维持插入顺序的key-val容器,可以使用C++标准库。
最短路径算法有那些?
query中查找是否包含给定词典中的词
快速查找附近的点
diff工具的原理
Trie树如何处理中文情况?
n个人随机抽取m个奖品?
给定一个文本文件作为输入,查找其中最长的重复子字符串。
拼写检查纠错。
工程方面
MapReduce的shuffle过程
Web服务器Session是如何实现的?
为什么数据库批量插入比单个插入速度快?
什么是状态模式?
计算机方面
如何基于互斥锁实现读写锁
条件变量wait方法为什么有一个mutex参数?
TCP协议为什么要三次握手和四次挥手?
程序从源码到编译到执行的过程?
栈帧布局是怎么样的?
进程和线程的区别?
https协议?
机器学习
什么是贝叶斯定理?
什么是最大似然估计?
什么是随机梯度下降
反向传播算法是什么样的