建议收藏!字节跳动业务中台三面面经(已OC)

前言

我现在把之前的面经整理了一下

一面:

面试时间:1个小时10分钟 (1)自我介绍 (2)介绍项目相关技术 (3)数据库的隔离级别 (4)redo log 和 undo log (5)zookeeper分布式锁 (6)linux常用命令 (7)java中的堆和栈 (8)编程题 1)有 time ip path这三个字段的日志数据,请使用shell进行编程,求ip的top10。(我说好久没写shell了,有点忘记怎么编程了) 2)有一个数组,请找出a+b+c=k的组合个数 3)一个数组,请求出最大的子序列和。(我一开始写了个空间复杂度为O(n)的DP,之后面试官让我讲出空间复杂度为O(1)的DP)。

二面:

面试时间:1小时 (1)自我介绍 (2)问项目 (3)目前学校教了哪些课程(我们学校还没开操作系统和计网这两门课,但是我和面试官说我有学过计网和操作系统,但是之后一个都没问…) (4)C++的多态(我的技术栈是java,可能是面试官看我得过一些C++编程比赛的奖项,就突然问了C++) (5)如果一个sql运行得非常慢,如何解决 (6)为什么mysql索引要使用b+树,为什么不使用红黑树 (7)开始做题 1)例如数组a = 1, 2, 3, 4, 5是有序的,任意旋转可能得到a = 4, 5, 1, 2, 3 ,在旋转后的数组a中搜索是否存在目标值n,如果存在返回下标,不存在返回-1 我说了一个O(n)的算法,面试官让我再想想,我觉得是二分,但是不知道怎么解决。 然后面试官就说下一题了。 2)有一批隔板,其高度用数组表示,相邻两隔板之间距离均为1,隔板本身不占体积,问下了足够多的雨之后,隔板中最多能蓄多少水? 样例: 输入:[3,2,5,4,6,2] 输出: 18 3)给你一篇英语课文,你得从里面去掉一些字符,使得最终只剩下指定数量的字符(假设k个),并且字符间的顺序不能变,问你怎么样使得剩下的课文内容字典序最小。 样例:输入:k=3 课文:abcdeafg 输出:aaf 面试官看还有时间,然后就又问了一些问题 (8)如果有10亿条数据,需要求出用户数,怎么解决。(我说了一个方法,面试官问还有其他的吗,然后我回答不知道…)

三面:

面试时间:90min (1)求出一个数的下一个比他大的数。例如:1234下一个数就是1243 这道题之前做过,但是我有点忘了,推了挺久的。 (2)a+b+c=0(leetcode经典题目了,直接秒了) (3)给n个有序数组,求出他们的交集。(我用hash表做的,但是肯定还有其他的优化方法,面试官说时间不够了,就让我按自己思路写了) (4)思维题 A B C D 要过独木桥过桥时间分别为1 2 4 8,过桥时只能用灯笼,并且只有一个灯笼,可以两个人同时过桥,求最短过桥时间。 想了挺久,这道题要是画图就很好解决,但是我都是在脑子想的,所以一直没想出最优解。(面试官疯狂提示,但是我还是想不出来,还是太菜了)

总结

上面已经耗时70min了,所以面试官又问了一些八股文。 (5)进程的通信方式 (6)命名管道与普通管道的区别 (7)tcp的三次握手和四次挥手。

经验分享 程序员 微信小程序 职场和发展