今日头条面试题

本文作者分享了自己面试今日头条的经历,包括面试过程、遇到的题目类型和难度,涉及算法、操作系统、网络、数据结构等多个方面。尽管未成功获得实习机会,作者通过面试了解到互联网行业对项目经验的需求,并从失败中汲取了教训。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       本宝宝从来没想过会去头条面试,但是莫名的收到了头条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缓存,详细

实现一个二叉树的持久化方案,可以伪代码,必须用指针

主要是序列化和反序列化的过程

(卡在指针的持久化,然后他不是很满意,说我应该做得出,然后我只能把我的另一种不用指针的方案给他讲,才算勉强过)

实现二叉树的层序遍历再按层输出

tcpudp的区别

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)

 线程池的原理

给一个数组返回最小堆(把核心代码写出来了,但是面试官好像不怎么看,让我输入测试下。我又写了半天输入输出,连续面了三个小时,加上对好久没写了不熟悉弄了半天,他不承认

评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值