菜鸡面经
1. C++ 看过哪些书
2. 找到倒数第二个节点
3. 一个指针指向的内容经常变化 , 如何防止编译器去优化它
4. Static 的作用
乐视二面 :
1. 服务器 A 有 10 个文件 , 在服务器 B 写一个脚本 , 传输这 10 个文件 , 并合并到一个文 件上
2. 项目相关
一点资讯一面 :
1. 写一个字符串转浮点型 .
2. 项目相关 .
一点资讯二面 ( 卒 ):
1. 线程和进程的区别以及理解 , 哪一个更好写 , 哪一个通信成本更低
2. 中序非递归遍历二叉树写代码 , 后序非递归遍历二叉树 , 的两个栈的实现
3. select 的描述符一次使用之后 , 下一次还会继续在描述符集里面吗 .
4. epoll 的两种触发方式 , 以及哪一种效率更高 ,
5. accept 的非阻塞返回链接的套接字 , 怎么知道此套接字准备好了 .
6. 项目相关
百度一面 :
1. 求序列的最大乘积子序列
2. 有大量的 URL 去重 ( 布隆过滤器 )
3. 写一个不能被继承的类
百度二面 :
1. 说一下这个项目干了什么事 ...
2. 网络分几层 , 每层存在的意义 , 为什么需要这一层 , 不要它会出现什么问题
3. 多线程和多进程的区别
4. TCP 三次握手 ( 如果两次怎么办 ), 四次挥手
5. 服务器重启的时候可能启动不了 , 是为什么 ( 考点 : 此时 fd 正在和客户释放链接 , 由 于关闭的套接字 2 分钟内不能使用 , 存在启动不了的问题 , 解决办法 , 设置一个 socket 选项 / 具体忘了 )
6. 网络编程的客户端和服务器的套接字结构 . 以及 accept() 返回的什么 , 以及如何使 服务器并发处理数据 ( 多线程 , 多进程 ,epoll/select)
7. Epoll/select 的区别
8. fork 的返回值是什么
9. 数据库了解吗 ,mysql 引擎 ,redis 的操作
10. 会哪些数据结构 , 我说得栈 , 队列 , 树 , 图 , 哈希表 , 跳跃表 .
11. 栈和队列的区别
12. 平衡二叉树是什么 , 它的查找复杂是多少 , 怎么插入 , 旋转以及平衡二叉树和跳跃 表相比的优劣 ,
13. 跳跃表的实现原理
14. 解决哈希冲突的办法
15. 解释一下多态 , 并写一个多态的例子 , 说明在一个类中的默认函数有哪些 , 以及复制构造函数和赋值函数 operate=() 的区别 , 以及什么时候用到 .
A a(b) 和 A a=b 都是复制构造函数 /A a=b 是用 operate=
16. 平时如何学习一个新技术
百度三面
1. 写一个 char* strcpy(char *s,int n) 函数 ,[ 考点 : 注意判断有效输入和 malloc 返回空 ]
2. 用数据说明 ,python 路由任务有什么优势
3. 论文中用到了什么算法 , 迪加斯科单源最短路径 , 详细讲讲此算法的核心思想
4. 在文件中每行都有时间戳 , 计算每秒输入了多少行 ( 当时说了 python 字典的方法和 grep ..|wc -l)
5. 讲一下项目中的服务器的后台架构 , 负载均衡使用的什么 (nginx), 以及我负责的模 块
6. 项目中最有成就的一件事
7. 平时喜欢干啥 , 能来实习吗 , 巴拉巴拉巴拉
美团一面 :
1. linux 的 TOP 命令
2. 改变文件权限的命令 chmod, 以及 chmod 755 代表的意义
***
*****
***
*
4. 一个村子 , 生孩子 , 直到生一个女孩才停止 , 问生出的男女比例
5. 进程和线程的区别
6. 进程间通信方式 , 以及它们什么时候使用
7. 线程的几种状态 , 以及画一个状态转换图 ,
8. linux 中如何打开一个文件 , 如何处理一个正在动态增长的文件
9. 造成死锁的条件 , 以及如何解决死锁问题
10. TCP3 次握手 , 为什么是 3 次 , 哪些协议简历在 TCP 上的
11. TCP 协议如何进行拥塞控制
12. inode 和 block
13. 找到数组第一个出现一次的值 ( 剑指 offer)
美团二面 :
1. 项目架构以及项目设计 , 是否有可以改进的地方
美团三面(卒):
1. 十进制 IP 地址转整形
华为一面 :
1. 软件路由器的程序架构
2. C/C++ 基础知识 , 如构造函数不能是虚函数 ,sendmes 和 postmes 分别是阻塞和非阻 塞 ,
1. 一个 python 相关的程序问输出 :
def fun(a=[]):
a.append(1)
print a
if __name__ == '__main__':
fun([])
fun([])
fun([])
fun()
fun()
fun()
2. 写一个程序 , 有两个有序数组 A,B, 找到第 k 大的数 ( 最后想到复杂度 lgn 的算法 )
3. 熟悉数据库吗 , 回答只是会用 , 以及知道 redis 的底层数据结构
4. 爬虫使用到什么程度 ( 只会抓取静态网页 ....)
今日头条二面 :
1. 说一下实习项目 , 巴拉巴拉巴拉
2. 写一个程序 , 给定一个数组 , 有正数负数 , 找到 X+Y+Z=0 的这样的组合 , 一个就 OK( 想 到了复杂度 O(n^2)+ 辅助空间 O(n) 的 , 以及复杂度 O(n^2*lgn) 的 ), 然后手写 O(n^2*lgn) 的算法
今日头条三面 :
1. 写一个程序 , 找到一个数组中所有数的最靠近它的第一个大于它的数 , 如 2,9,3,5,2 输出 0,9,9,5( 提示了很久 , 很久 , 很久才想到 O(n) 的方法 )
2. 设计一个系统 , 一个下拉动作可以拉出所关心的最近的 10 条信息 .( 核心是为每个 用户创建一个链表存储数据 )
3. 对 1 亿个被关注的主题 , 并发量 1000,5 亿用户接收 , 会存在什么问题 .( 如果对每个 用户的数据存储结构上锁 , 会有 5 亿个锁 , 太浪费资源 , 而并发量只有 1000, 所以 只用维护一个数据结构 , 如数组 , 长度 1000, 来管理被访问的数据结构 , 这样只需 要一个锁 )