简介:字节跳动特重视算法,不怎么关注编程语言啊,开发框架啊什么的,比较注重考察思维能力,也会问一些基础的操作系统网络通信什么的感觉头条的面试思路跟微软谷歌差不多 就靠算法题看编程能力然后也问了问我读研期间写 ...
第一轮视频面试视频面试是通过牛客网,双方写的代码都可以实时反馈给对方1.(项目经历)面试官特别关注项目里用到了哪些机器学习算法,尽管我报的是开发岗,依然详细询问我模型中用到的测试集。反倒是我写的系统用了哪些框架,哪些些技术,这些都没有被细问2.(手写算法题)第一道题是leetcode原题:Minimum Window Substring。不是特别难,但是面试官会不断和面试者交流 有什么想法之类的。3.(手写算法题)第二道题,调整一棵二叉树,调整后,要求所有节点的右子树的最大值大于左子树的最大值。第二题也不算太难嘛,二叉树的题都不算太难,仔细想一下就成了,开心开心4.(手写算法题)第三道题变态难:用两种积木,2X1型,1X1型,摆满n行m列,有多少种摆法。提示就是先 考虑2行m列有多少种摆法,再算n行m列,有了这个提示好做多啦幸福第二轮视频面试1.(项目)继续问自己的项目,有啥困难啊,怎么解决啊。request 到 response 发生了啥,从应用层一直往物理层描述一遍(编程题)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然后系统有一个功能 输入俩用户 输出他俩之间的 度如何设计系统 包括数据库,最短路算法都陈述一遍即可2.(算法题)leetcode原题 Longest Increasing Path in a Matrixa very usual question,just try to solve it recursively 其实还问了我TCP中的’滑动窗口’,我说那不是大二学的嘛这都4年多了中间也没看过早就忘了~~然后就拉倒了人家没问然后HR又聊了20分钟 |