【腾讯】后台C++岗位之菜饼的面筋
【楼主情况】
双非一本,JAVA选手(实习用的Go)
offer 情况:腾讯SP
腾讯后台(C++岗)
(08-25)一面-电话面
体验还是很不错的,面试官并不只是纯粹的问问题,会跟你交流,适当解答疑惑。
常规自我介绍,然后项目中引出的问题:
1.protobuf具有压缩能力么?怎么理解?(面试官觉得使字节紧凑更加合适)
2.缓存穿透(空缓存,追问有无其他方法,提示数据结构-bloom,然后讲布隆过滤器,存在不一定存在,不存在则一定不存在)
3.分布式缓存一致性算法(Paxos、Raft算法)
4.ConcurrentHashMap如何保证线程安全
5.提到 volatile,讲一下(线程可见,防止指令重排)
6.JAVA做多线程开发,用过哪些常用的锁
7.读多写少和写多读少的场景分别适合用啥锁?(前者乐观锁,后者悲观锁)
8.MySQL支持事务的引擎(InnoDB)
9.分布式事务实现方式
10.两阶段提交
11.redis能做落地存储吗?(愣了半天,才搞清楚是想问持久化。RDB、AOF)
RDB、AOF的优劣,然后场景举例让你选;
Redis内存满了怎么解决(扩容、调整过期删除策略、淘汰策略)
代码:发了QQ doc,在上面写,提前问了,不能用IDE调
12.字符串排序:
输入:字符串由数字、小写字母、大写字母组成。
输出:排序好的字符串。
排序的标准:
1. 数字 > 小写字母 > 大写字母;
2. 同类字符间的相对顺序不变;
要求:
3. 额外存储空间:O(1).
// Example
input: "acbd4231BADC"
output: "4231acbdBADC"
// function proto, you can redefine it if you use another language
std::string stringSort(std::string& str);
13.在二叉排序树上找出第5大的节点。
输入:二叉排序树的根节点,该树确保左节点 <= 父节点 <= 右节点;
输出:第5大的节点
要求:
1. 不能把二叉树全量存储到另外的存储空间,比如存储到数组中,然后取出数组的第5个元素。
// node and function proto, you can redefine it if you use another language
struct TreeNode {
int value;
struct TreeNode *left, *right;
};
struct TreeNode* find5th(struct TreeNode* root);
(08-30)二面-电话面(1个小时)
常规自我介绍,项目中引出的问题:(项目讲了半小时)
缓存穿透的问题,如何解决?
protobuf 如何压缩存储空间?
分布式事务(两阶段提交、本地消息表)
强一致性方案(去除缓存层)
c++了解到什么程度?(学校讲的都会,深入的不会)
volatile的作用(线程可见性、保证指令不重排),具体哪些指令不会重排(不记得了)
智力题:
100张扑克牌,两个人轮流取,每次只能取1或者2张牌,最后拿牌的赢,问先手还是后手有制胜策略?
先从最少的情况进行分析,剩1张,先手拿了就赢;剩2张,先手拿了就赢;剩3张,先手怎么拿都输;推广后就是想办法留下3的倍数张,100张先拿1张,就能必胜。对面拿1张,你就拿2张;对面拿2张,你就拿1张。
(推广)n张牌,每次可以拿1-k张,问满足什么条件下先手赢,满足什么条件下后手赢?
n不等于(1+k)的倍数时,先手赢;n等于(1+k)的倍数时,后手赢。然后问先手应该拿多少张牌,用数学表达式(n%(1+k))
现在有一个随机发生器(可以视为一个函数),产生0的概率是p,产生1的概率是1-p,p是确定的,但是不知道p是多少,问能否利用这个随机发生器,设计一个可以等概率生成0/1的发生器。
暴力法:用两个p随机发生器,根据结果01则返回0,结果为10则返回1,结果为00、11则丢弃重来;然后面试官问我,这种方法最终会需要重试,问我重试次数的期望是多少?(1/p(1-p))然后问p越大,整个期望是越大还是越小?(p/(1-p))
然后就是反问阶段,问了下部门情况。
9-14(三面-腾讯会议面[我开视频,面试官不开])(半小时)
总监面日常等半个月...
自我介绍
让我挑一个项目讲,实习的或者自己做的。
围绕着我说的问了一丢丢技术问题,难度不大
项目的架构实现,实习期间主要承担哪部分工作
然后对着简历问项目(自己做的demo项目也被问了)
消息系统的存储设计
继续问项目,然后反问阶段
总结:全程基本在聊项目吧,大多数时间都是我在说,基本没啥技术问题。
9-17(HR面-腾讯会议)(半小时)
整体来说HR面没啥难度,放宽心态,正常交流即可。
问腾讯字节怎么选
自我介绍
根据自我介绍问我的规划