字节跳动技术岗实习斩获offer笔面经
实习面试和秋招面试必然不同,只可能是风格相近,难度应该后者会更高,所以仅供大家参考,切勿以此为准。
题目分享
机试两小时五题,题目如下:
A题:
题意:给定一个行列数不定的矩阵,其中的元素为0/1/2,每一秒钟,每一个2的四邻域中如果有1,则这些1会变成2,问最少多少秒后矩阵中所有的1变成2,如果永远变不完输出1。
题解:BFS即可。
B题:
题意:给定M个二元组的集合,问连续出现最多次的二元组的出现次数,M<=1e5,二元组的总个数1e5。例如:
1:(1, 2) (1, 3) (2, 3)
2:(1, 3)
3:(1, 3) (2, 3)
4:(2, 3)
5:(1, 3)
则(1, 3)连续出现了3次,最多。
题解:用map维护这些集合中的二元组,简单DP递推即可。
C题:
题意:给定一个正整数数组H(已知),你有一个初始值E(未知),你要从H1走到Hn,每一步你的能量值会发生改变E = E Hi,求E的最小值,使得你能从1走到n,中途任意时刻保证自己持有的能量值E>=0。H的长度1e5,Hi的值1e9。
题解:二分答案即可。
D题:裸TSP问题,暴搜即可。
E题:这题我怀疑他题目数据有问题,所以这里就不说了。
我当时的得分是100/100/100/83/16,用时大概是一小时出头。上面的题有不会的可以问我。
对于机试题目,就难度而言,比华为要难、比腾讯要简单,就质量而言我感觉并不好,D题太毒瘤,E题我怀疑题目有问题。
但是对于平时不怎么敲代码的同学来说恐怕难度颇大,最好早做准备、多做准备,随便准备准备肯定是不行的,肯定会挂掉,这样的话你不如别去送死了。
面试体验
面试,我当时是视频面试,一天内面完三轮。
时间略有些久远,并不能回忆起所有细节,还请谅解。
1. 面试时当场敲代码题
字节跳动的风格是喜欢考察Coding,三轮每轮都让我写了1~3份的代码。
我记得的有这些,应该是大部分了:
1. 二叉树的先序遍历(要求写非递归),经典的基础数据结构问题;
2. 螺旋形遍历一个矩阵中的元素,LeetCode原题,Medium难度,但我当时也没写过,当场写的;
3. 最大连续子序列和,经典的基础DP问题;
4. 给定一个仅由小写字母组成的字符串,定义X字母为在字符串中出现了恰好三次的字母。问你如果从左往右扫描字符串,哪一种X字母最先出现三次。这题很简单,开个桶然后线性扫两遍就行了。
其他的记不清了。
可以发现的是,会涉及很多最基础的问题,在此之外的题目难度基本上最高LeetCode Medium的级别,并且是其中偏低的。码的效率不能太低,可以预见他不会让你写太久的。
建议准备方法:
最最基础的算法数据结构问题得会,然后可以刷些LeetCode Medium的题。如果有时间的话,推荐去看《剑指Offer》,网上可以找到pdf。不要太自信,有些东西还是需要事先准备一下的,比如二叉树遍历的非递归,主要是非递归不好写,临场发挥的话一紧张可能就写不出来。
面试时涉及的问题
涉及的方面有:
你在简历上写的一切,操作系统,计算机网络,概率论。因为我当时投的是后台所以还问了数据库,当时才刚开课,我直接跟他说我还没学,面试官表示理解OK没问题。不过秋招肯定没有这种操作了。
看到上面写了个概率论不要慌,一共问了我两题,但是真的简单到爆表,我可完全没有复习概率论,早忘光了,也能做出来。数学学得别太差应该就没问题。我推测他的目的只是考察你的数学能力不要太糟糕。
这其实就是通用的面经了,自己网上搜搜面试题就好,我觉得我没有再列举一遍的必要,我也记不清他问我的所有问题。
通常来说(各大互联网公司基本上都是),操作系统的重点是进程和线程相关、内存相关,网络的重点是
TCP/IP、TCP三次握手四次挥手。要掌握到比较细致可靠的程度,基本上大概率会往深了问,深多少就看面试官
了。
我记得的只有这个:
当时问我操作系统问到最后的问题是(大意):你既然知道进程的内存分配状况,那么这个进程在使用多线程的时
候,线程的私有栈空间是开在什么地方的,是新开辟的,还是在进程的内存块的什么地方分配的。其他的不记得
了。
对于面试注意事项的个人看法
1. 如果面试官问你的这个东西你不会,就如实说你不知道,或者什么东西你只稍微接触过,就不要说自己会,说
不会或明确指出自己只浅显的看过。不要强行装懂然后面试官随便问你一下你就GG,会给对方留下很糟糕的
印象。
2. 有时候面试官会越问越难,问到你GG为止,这个过程中可能会感到问题非常困难,但是不要闭口不言,要表
达自己的内心想法和思路,只要遵循上一条不要胡言乱语就好,清楚地告诉对方你知道什么不知道什么。
3. 简历上的一切务必要保证自己十分清楚。比如项目经历,最好写自己全程参与对项目整体非常清楚的,如果只是浅参与的项目,要么别往上写,要么事先整理好,不然他问你你就完蛋了。
分享作者:西安交通大学计算机专业2020届毕业生,已获offer:字节跳动暑期实习、腾讯提前批
叨叨说招招,互联网大厂笔面经的搬运工,希望能帮助到迷茫的大家,每日都会更新哦!