字节data后端一二面经

本来投的客户端,简历被刷了,被后端捡起来,没有笔试。一二面连着来的。
一面:
先谈了下项目,这是我秋招来第一次被问到实习具体细节的,别的公司可能没有相关业务,都不会问,捞我的部门好像在做相关的业务,所以问得比较细,可能是这样才捞我的吧。
项目聊得不多,5分钟左右。
然后开始问基础。
c++:
violate关键字的作用,我说不会,所以换了一个static。我就说了静态成员,静态方法,静态变量 等等。然后,难题就来了,问你,如果cpp文件链接了两个库,两个库都含有static int a这个变量,这两个变量会冲突吗?我说不冲突,他问,那如果我想两个库共享这个静态变量呢?这就触及到我的知识盲区了,没答出来。
开始写代码。给你一个字符串a,字符串b, 字符串c,问你,c是不是由a和b交叉形成的?例如,a = "abc",b = "123",c = "a1b2c3",这样叫交叉形成,即a和b的内部顺序不变。
我写了个dfs算法,大概花了20分钟,他问,这个时间复杂度多少,我答错了,应该是2的(max(m,n))次方?
然后一面就结束了。等了20分钟接着二面。
二面:(前方算法课预警!!!)
也是问了一下项目,比较关注的是项目细节,大概讲了10分钟。开始做题:两个有序数组的交集。
我一看,这个我做过啊,洋洋洒洒地写了个哈希+遍历的,他问,你这算法复杂度多少?O(m+n);
他问,怎么优化?我又想了一个,双指针,分别遍历,比较小的指针+1,相同则放入结果集中;但是又问,你这算法复杂度多少?我答错了,答案还是(m+n).
于是,问题又来了,怎么优化?我想了一下,有序,那就遍历a,每个去b中二分查找,但是时间复杂度mlog(n)不一定比(m+n)小啊,怂怂的,不敢说。他顿了顿,这思路还可以,继续,还能优化吗?
还能优化吗?想不出来了啊,空气凝固了5分钟。

他看我想不出来了,提示了下,你在数组B里可以用指针跳过一些不要的数字,你在A里再想想看?
还是想不出来,又沉默了五分钟。他又提示了一下,给了个例子,A={1,2,6,7,23,40,50},B= {1,2,23,50},你A里面的6,7还有必要去B里二分查找吗?
哦!是哦!在B里查找到的数tmp,可以再去A那里二分查找,缩小A的遍历范围,就是两个数组之间用二分查找反复横挑!面试官:不错,就是这样,来实现一下吧?
光是编码也有点晕乎乎的,错了好几处,让面试官提示错了的才写好。大致是这样:
首先实现一个函数upperbound(array,int k),返回array中第一个大于等于k的下标。
开始遍历A:
index = 0;
while(index<0){
int first = upperbound(B,A[index]);
if(A[findex] == B[first]){
把值加入结果集中。
index = upperbound( A, B[first+1]);//如果相等的话,如A={2, 23,27},B = {2,27},查找2的时候,B的下一个数27应该成为A的下一个起始地点,之间的23不应该再遍历了。
}else{
index = upperbound( A, max(A[index],B[first]);//如果不相等的话,如A={23,25,27},B = {22,25,28},查找23的时候,A为23,B为25,下一个遍历的数应该是max(23,25)=25。
}
返回结果集。结束。面试官又问了,这个算法的复杂度多少?我是真的晕了,没想出来,他说:今天就到这里吧。大伙来分析分析复杂度应该是多少?
总结:与其说是面试,不如是面试官给我上了一节算法课,就一个简单的问题,两个数组的交集,能问30分钟,我有20分钟属于茫然状态,啥?还能再优化?啥?还能这样优化?啥?复杂度应该是多少,不知道啊?啥?就结束了?
面试官多番提示,我还是要缓好久才能明白他在说什么,这就是我跟字节大佬的差距吗。想不凉都难。
PS:答成这个鬼样,后续还有可能被其他部门捞吗?该不会面试官的评语就是“榆木脑袋,不可雕也”,我还能投其他岗位吗,流下了菜的泪水。


#字节跳动##面经##校招##C++工程师#
全部评论
楼主好有意思哈哈哈哈
2 回复 分享
发布于 2020-09-07 22:09
害 说不定还会有人看呢 二面挂可能会被捞起来的~
1 回复 分享
发布于 2020-09-08 00:34
楼主是科班的么
点赞 回复 分享
发布于 2020-09-07 22:17
我咋感觉这个东西最坏复杂度还是nlogn
点赞 回复 分享
发布于 2020-09-07 22:20
楼主几号投的
点赞 回复 分享
发布于 2020-09-08 09:59
所以两个库共享static全局变量咋整啊
点赞 回复 分享
发布于 2020-09-17 00:47
你的一面第一题是leetcode上的hard 我的天
点赞 回复 分享
发布于 2020-10-09 21:04

相关推荐

09-20 14:23
已编辑
门头沟学院 Java
点赞 评论 收藏
分享
09-04 21:05
已编辑
西南科技大学 Java
点赞 评论 收藏
分享
胖乎乎的花生米:首先,不冲大厂的情况下,这个简历也是有很大优化空间的,项目经历和校园经历放在最上面,荣誉和自我评价放下面,对经历的描述有些太简短宽泛,没有突出亮点,建议可以结合意向岗位,使用star法则+ai工具,扩充到至少每一条经历有一整行。做好整体格式清晰易读,上半部分突出优势,下半部分可以普通但是有亮点,这样会更好的
点赞 评论 收藏
分享
2 34 评论
分享
牛客网
牛客企业服务