写在前面
历经了将近一个月的煎熬,以及很多次面试完被挂掉的忧伤,最终还是迎来了不错的结局。
虽然感觉很大的运气成分在其中,不过
“Life was like a box of chocolates.
You never know what you’re going to get.”
原本计划着实习期好好争取一个转正的机会,不过目前看来还是要begin again了 U•ェ•*U。
之前经历的面试都没有录音,只能尽量回忆了,应该会有很多的疏漏。
面经汇总
TCP三次握手、四次挥手,以及一系列衍生问题(某个包丢失了会怎样?)(为什么要三次握手而不是两次或者四次?)…
TCP和UDP对比分析
线程和进程是什么?通信方式?
熟悉哪些STL容器?
sort用什么实现的?(是一种混合式排序算法,主要是快排,也会用到桶排序和直接插入排序)
C++的四种类型转换?
new和malloc的区别?
你怎样解决C++的内存泄漏问题?
重载、重写、隐藏
题目:如何判断一个二叉树是不是二叉搜索树?(中序遍历)
题目:剑指offer58.翻转单词顺序
题目:给你一个数组(包括负数),你可以删除一个数或者不删除,给出子数组的最大和(最小数如果是负数,删除它,否则不需要操作,之后可以用dp计算子数组最大和)
题目:给你一个字符串,返回其子序列的个数(map+回溯法)
题目:按层次遍历的顺序给绑定next指针
题目:合并两个有序数组(merge)
口述思路:上亿个数找最大的k个数(TopK问题,见之前的博客)
口述思路:上亿个数找出现频率超过一半的数(同上)(PS:与找中位数同理,类似题目还有找出现频率最高的k个数)
题目:双栈实现队列
题目:给定目标值,在有序数组中找出子数组,该子数组和为目标值
题目:给了几组数字找规律,没看出来/(ㄒoㄒ)/~~,最后了解到是银行家舍入法,感兴趣可以去了解一下(对ms印象直接180度转弯)
Linux kill命令,问得很深,怎么实现的,什么机理(没答出来)
HTTP长连接和短连接
讲一讲你了解到的内存相关的知识(很宽泛,可以随意发挥)
异常处理相关
浏览一个网页的过程中,具体发生了什么事情?
想实现查询,可以使用哪些数据结构?
哈希表问题是什么?怎么解决?解决方案对比
Linux grep命令的使用
select/poll/epoll