一年经验腾讯二面之旅

AI 乔治 · 05/26 16:29


腾讯面试提前 1 天和提前一个小时都会发短信提示。


去的腾讯滨海大厦面试,大楼的现代化程度很高,不过需要提醒一下的是,腾讯的滨海大厦分为南塔和北塔。


我去的时候就上错楼了,需要下到 4 楼重新换成电梯。


一面

笔试

  • 微服务的特点,如何实现服务发现和负载均衡
  • c++内存管理
  • time_wait 在哪一端产生,作用是什么
  • 程序 crash 如何定位
  • 服务性能问题如何定位
  • 两个排序数组找中位数
  • 就数字 n 的平方根
  • 设计一个算法,抽奖次数越多中奖概率就越高
  • MySQL 如何分析一条语句的执行过程。delete from t1 limit 3 和 delete from t1 的区别?

面试

  • 问项目
  • 跳台阶
  • 数组中奇数个元素
  • 一栋楼有 n 层,不知道鸡蛋从第几层扔下去会碎,用最少的次数找出刚好会碎的楼层
  • 动态规划与贪心有什么区别
  • redis 数据结构的底层实现
  • redis 如何实现高可用
  • 负载均衡算法有哪些
  • 服务发现是怎么实现的
  • 熔断是怎么实现的
  • id 生成器怎么实现的,如何实现全局递增
  • 协程和线程的区别
  • 进程间通讯方法
  • 平时逛哪些论坛,研究哪些算法
  • paxos 算法,这个算法我说不清楚,然后说了 raft 算法
  • gdb 怎么切换线程
  • 如何判断一个图是否有环
  • 介绍一下缓存
  • 查看 CPU 的命令和磁盘 IO 的命令

二面

  • 项目的系统架构画一下
  • 如果用户量上涨怎么优化
  • 负载均衡的加权轮询算法怎么实现
  • 背包问题
  • 贝叶斯的概率学原理
  • 分词算法
  • 连续整数求和(leetcode 第 829 题),要求时间复杂度小于 O(N)

总结

腾讯二面面完我就知道凉了。


动态规划非要写出递推公式,因为我一直都是用动态规划表的思路来解题,所以这个地方没有答好。后面又问贝叶斯和分词算法,一点都不会(我的内心:我是来面后台的,又不是面算法的)。


最后一道算法题只能想出 O(N) 复杂度的,面试官一定要小于 O(N) 的,答不上来。这道题是 leetcode hard 级别的难度,所以没有刷。


不过后面去看可能也没有那么难,只是这种通过数学公式的特点来解题往往容易被忽略了。


总之,腾讯的一面算是中规中矩,二面确实让我有点手足无措。


之前看网上的说法是腾讯算法题考的比较少,可能还是要分部门吧,我这次面试的是腾讯视频,二面基本上全是考算法。还有大部分面经都说,算法题很少考 leetcode hard 级别,这个我也要表示怀疑了,因为腾讯和后面的头条都考了 hard 级别的。


所以刷题时不能完全跳过 hard 级别的题。那有什么题不会考呢?我认为是描述起来很复杂的题面试时不会考,因为面试时间比较紧,如果光时把题看懂都要解释半天的,这种是不太会考的,比如那个 LeetCode 上买股票的题。