字节提前批一面二面三面面经--回馈牛客
早上三面终于通过了,再offer 审核,还没发意向书,讲真这个效率是真的快。
这个部门是做搜索的,我应该是被捞起来的,然后简历上的技术栈基本上完全不匹配
一面
建表语句,建立一个学生表,考的是字段的数据结构定义,比如说 男女 可以用 1bit 来替代,学生一共就10000个 用 smallint 大概这样的
两个mysql 更新一句 一共是 where a >30 一个 是 where a = 20 问锁住的区域是否存在交集,这个分情况讨论下
由于技术栈有交集的可能只有 Nginx ,两面都问道Nginx
Niginx 轮询的算法
算法题:
一个int 数组,求里面所有 和为 sum 的组合,用回溯做
二面
二面是真的绝望,1小时15分钟,20分钟算法,其他时间全程再扣项目
项目上写了 Netty 的RPC
手写一个用Netty 实现 PRC 远程调用的 伪代码,有一些重点(动态代理,序列化,异步调用)这一类的
序列化问了 protobuf 答:没有用过
问了 CDN 和 Ngixn 进行动静分离的区别,答 CDN 不太了解,
然后问了 Nginx 负载动静分离是怎么配置的,就是 那个 location \ {xxxx} 这个东西,基本上忘光了,没写出来
然后扣了很多的项目细节,这里没啥参考意义
算法题:
leetcodde
二面答得稀烂,一方面是对于Nginx 是真的不熟悉,另一方面 RPC远程调用伪代码也写的不好,可能就最后算法做出来才过了
三面
三面全程再做题目
一小时15分钟,就问了15分钟简历上项目的基本信息,其他都不问了,就开始做题
算法题1:
一个很长的int 数组,里面存在重复的数据,求重复次数最多的 TopK,比如说 【1,1,2,2,3,3,3】 三出现次数最多,如果K =1 返回3
用一个 HashMap 去记录 出现的次数,然后用堆排序进行 topK的操作,这里我直接用优先队列,写完面试官说不能用优先队列,你写个堆排序把,然后写了一个堆排序
算法题2:
36进制的乘法,两个36进制相乘,后来感觉太麻烦了时间不够,就改成两个36进制相加,这里不能36转10进制,得转字符串,去模拟加法的过程,最后返回字符
难点在:字符串中获取一个代表36进制的char 如何转为 10进制,需要分类讨论 如果是小于‘9’ 和 大于‘9’
三面的面试官估计比较忙,给我搞了题目就不怎么管我了,算法1写的时间有点久,算法2有部分错误,然后在他的提醒下修改了
这个部门没有hr面
第二天10点打电话问hr 说三面过了,offer 审核阶段