今日头条(字节跳动)后台开发岗(应届生)三轮技术面试

今日头条(字节跳动)后台开发岗(应届生)三轮技术面试

字节跳动特重视算法,不怎么关注编程语言啊,开发框架啊什么的,比较注重考察思维能力,也会问一些基础的操作系统网络通信什么的
感觉头条的面试思路跟微软谷歌差不多 就靠算法题看编程能力

总体感觉真是 难哭了呜呜

第一轮视频面试

视频面试是通过牛客网,双方写的代码都可以实时反馈给对方

1.(项目经历)面试官特别关注项目里用到了哪些机器学习算法,尽管我报的是开发岗,依然详细询问我模型中用到的测试集。反倒是我写的系统用了哪些框架,哪些些技术,这些都没有被细问
2.(手写算法题)第一道题是leetcode原题:Minimum Window Substring。不是特别难,但是面试官会不断和面试者交流 有什么想法之类的。
3.(手写算法题)第二道题,调整一棵二叉树,调整后,要求所有节点的右子树的最大值大于左子树的最大值。
第二题也不算太难嘛,二叉树的题都不算太难,仔细想一下就成了,开心开心
4.(手写算法题)第三道题变态难:
用两种积木,2X1型,1X1型,摆满n行m列,有多少种摆法。

提示就是先 考虑2行m列有多少种摆法,再算n行m列,有了这个提示好做多啦幸福

第二轮视频面试

1.(项目)继续问自己的项目,有啥困难啊,怎么解决啊。
2. request 到 response 发生了啥,从应用层一直往物理层描述一遍
3. (编程题)
3.1 实现一个类TestLimited, 类通过构造方法初始化int limitedTimes成员变量。
实现类的非静态成员方法qdsAllowed(),要求每秒钟qdsAllowed至多只能被调用limitedTimes次

	class TestLimited{
		int limitedTimes;
		TestLimited(int limitedTimes){
			this.limitedTimes=limitedTimes;
		}
		public void qdsAllowed(){
			doSomething();
		} 
	}

3.2 (继续3.1)当有多个线程来调用qdsAllowed,上述程序如何改进
我开始都没听懂啥意思,第一次做这么神奇的题想了好久心塞塞

第三轮视频面试

第三轮竟然没有算法题

1.(系统设计)
设计一个微博系统,用户之间可以互相关注,
如果 A关注了B,B关注了C
那么 A间接关注了C且 A与C之间的度为1

如何设计系统 包括数据库,最短路算法都陈述一遍即可

也不算特别开放,毕竟只有一种方法是最优的

然后HR又聊了20分钟

问问人生理想啊为啥加入字节跳动巴拉巴拉

猜你喜欢

转载自blog.csdn.net/littlewingsfei/article/details/84872327