本宝宝从来没想过会去头条面试,但是莫名的收到了头条HR的电话,问我是否在找实习,什么时候有时间可以面试,既然已经约好面试的时间,那还是要好好准备一下,为了准备头条的面试,把网上关于头条的所有面试题刷了一遍,并且顺利的通过了一面和二面(虽然全程都是都程序写代码,其他的什么都没问,全程被两个面试官虐了两个小时四十一分钟)顺利收到了三面的通知,以为这一面可以面一些网络方面,操作系统方面的,没想到三面面试官一上来就出算法题,我很快就写出来了,让我讲一下 tcp ip http 本宝宝巴拉巴拉一顿,面试官就开始问项目,嫌弃我的项目,因为本宝宝是通信专业的,所以做的项目也是偏于通信的,三面仅仅面了三十一分钟,最后把我刷掉了,虽然他把我刷掉了,但是也让我明白了找互联网工作是需要互联网方面的项目经验,现在已经每天都在做互联网项目,撒一波福利,希望秋招可以去我心心念念的那家公司。。。。(我是打不到的铜豌豆)
本宝宝心心念念的公司也嫌弃自己的项目太理论化,心心念念的公司一面面了一个小时二十一分钟,最后被挂掉了,你知道到吗,心心念念的那家面试官太好了,给我讲要怎样做互联网的项目,挂掉电话的时候我居然莫名的留下了眼泪(我相信在经过四五个月的锤炼,我是可以去那里的)。所以筒子们如果想转行走互联网这条路要多实践,不要天天看书,刷题,这些是远远不够的。
这是本宝宝在准备头条时,把所有题仔细刷了一遍,而最终无果,筒子们虽然春招实习我最终只收到一家的offer(目前已经不想去实习)几乎所有的都嫌弃我的项目,筒子们如果面试失败了,不要灰心,不要失落,坚持下去,最后一定会有结果的,就像我的好朋友和我说的那句话:一切都是为了最好的准备,现在你所经历的,可能就是为了最好的那家,最适合你的那家要经历的,只有经历了,你才会知道有哪些不足,好了筒子们,我就不再啰嗦了,下面是头条的面试题目:
n个整数的无序数组,找到每个元素后面比它大的第一个数,要求时间复杂度为O(N),在面试官提醒下写出来了,用栈+栈底指针
介绍5种IO模型
异步编程的事件循环
操作系统为什么要分内核态和用户态
为什么要有page cache,操作系统怎么设计的page cache
STL里resize和reserve的区别
撸一个std::lower_bound,不断优化,直到最坏复杂度也为O(logN)
C++11新特性
怎么实现线程池
用到哪些C++的新特性
怎么唤醒,调度线程
什么是LRU缓存
怎么设计的LRU缓存,详细
实现一个二叉树的持久化方案,可以伪代码,必须用指针
主要是序列化和反序列化的过程
(卡在指针的持久化,然后他不是很满意,说我应该做得出,然后我只能把我的另一种不用指针的方案给他讲,才算勉强过)
实现二叉树的层序遍历再按层输出
tcp和udp的区别
http的启动方法,没答出来
算法题:二叉树层级遍历,以及follow up是每下一层遍历方向颠倒
hashmap实现原理,冲突等
算法题:二叉树最小公共祖先【一开始问的是一棵树里最远的两个节点间的距离,思考的有点久于是换题了...】
算法题:链表成环判断
算法题:链表交叉判断
http请求的组成
get,post的区别
怎么解决hash冲突,然后让我讲讲Http协议,好像讲的不太好,第一题好像是个链表的,几下写完了,然后面试官又抛出一个合并k个链表,我的做法是用最小堆去维护,然后面试官说可以,第三题好像是按照字典序打印1~N的排序,从1开头比N小的数开始枚举就好了,也不难,期间面试官说去开会,让我写完打他电话,应该在10分钟左右debug完成,面试说这面通过,第二天HR打电话说安排下一轮,时间还是一周后同一天
· 进程线程的区别(这个问得比较细,不只是简单的内存共享之类的,还包括操作系统的进程描述,写时复制,操作系统启动等问题,推荐《深入理解计算机系统》)
· epoll,IO多路复用,聊到nginx的原理,和Apache的区别
· 常见的网络攻击方法,比如跨站脚本,sql注入之类的
· Https,非对称加密等
· 一个秒杀系统的架构,包括CDN,反向代理,session共享,由于分布式数据库我不熟,所以数据一致性那部分没有解决。
· Hashmap的实现原理,优化方法(其实JDK 8已经用二叉树替换链表了,思路差不多就是这个)
· 脑筋急转弯,1000桶牛奶,1桶有毒,用10只小白鼠试出来。其实就是二进制,网上有答案,提示:2^10 = 1024.
3.OSI 7层协议?有哪些是可靠的网络连接?TCP为什么是可靠连接?cookie vs. session
Linux命令:查看端口的的命令(此处忘记耍帅,<(‵^′)>),查看cpu/內存, 文件权限管理(chmod)
线程池的原理
给一个数组返回最小堆(把核心代码写出来了,但是面试官好像不怎么看,让我输入测试下。我又写了半天输入输出,连续面了三个小时,加上对好久没写了不熟悉弄了半天,他不承认