字节跳动暑期实习后台开发(北京)面经 - 一面、二面、三面

头条效率惊人,周五投简历立马接到面试通知,只好假装有课拖到了周一。(机智的我故意选择周五投简历不是没有原因的!)
就这样用周末两天看了看面经,一面就来了。。。

头条一面

自我介绍

水算法题:一个数列,选两个数, a i < a j a_iai<aj i < j ii<j,使得 a b s ( a i − a j ) abs(a_i-a_j) abs(aiaj)最大
5分钟写完

问问项目
session和cookie的区别?

讲一下Http
http状态码
http方法(get,post,put,patch,delete)

进程和线程
linux下怎么实现ctrl+c退出程序的?(信号)

数据库E-R模型
数据库索引是什么?
知不知道redis,为什么redis比sql快

知道程序的局限性吗?有什么用?

项目当中印象最深刻的点

一面之后,啊自己好菜啊,这么多不会,结果…居然过了!

头条二面

隔了一个星期开始二面。
二面开始前,才发现电脑声卡坏了,怒修半小时,后来发现…用耳机不就可以了!(蠢哭)

估计是觉得简历没什么好问的,先问项目,借机突破

项目中遇到什么困难?怎么解决的?
怎么判断用户的登录状态(维持在线)?

HTTP怎么保证安全?(HTTPS)
讲一蛤HTTPS的原理
非对称加密和对称加密是什么意思,有哪些方式

进程通信有哪些方式?
线程安全是啥?为啥要保证线程安全?
命名管道是什么?有什么用?

针对即将上线的项目,设计一个缓存系统,有哪些需要考虑的(缓存清理的优先级,带宽…)

算法题部分:

  1. 水算法题: 对一个序列求和最大的连续子序列,直接前缀和走起啊
  2. 二叉树层次遍历(queue) 怎么在相邻层次之间换行? (每个节点加一个depth即可)还有其他方法吗?(类似滚动数组,设置两个队列)这题是…某姐姐去年碰到的原题啊!

几乎每一题都看过,这也太水了。。。(膨胀中)

头条三面

二面和三面只隔了一天。
由于上一次面试的膨胀,这次面的很惨。。。

上来自我介绍,作死提到了项目。
于是开始问Spring相关:

Spring Beans是怎么实现的?
讲一下Java的动态代理。

绝望了,大部分不会,只能乱猜。

接着问了一个数据库设计题:假设用户量爆棚,怎么设计微博系统的数据库?

估计面试官看出我太惨,开始问算法题了

算法题部分:

  1. C语言练习题:括号匹配
  2. 两个数列长度都为 n n n,要求找到满足条件的数对 ( l , r ) (l,r) (l,r)使得 m a x ( a l , a r ) < m i n ( b l , b r ) max(a_l,a_r)max(al,ar)<min(bl,br),求一共有多少对满足条件的数对。
    利用数列的单调性,构造two-pointer,区间最值查询利用倍增,总复杂度 O ( n l o g n ) O(nlogn) O(nlogn)。难度大约是Codeforces Div.2 C题?
    这题倍增写的很快,思路也很好想,后来我觉得,就是这题的表现拯救了我的整场面试。

接着告诉我一周后等结果,我第二天就作死打电话过去,告诉我问题不大。

一周后,电话打来,通过了。



三轮面试结束了,就这样拿到了头条实习Offer。

你可能感兴趣的:(面经)