收到字节跳动实习offer邮件,开心.随便分享下面经.
c++后台开发,总共四面,基本全算法.隔了一个星期,问题可能有些记不全.
一面:
生产者消费者模型;
手撕代码.给出一个数,每位数相乘,多少次可得到两位数;
其他小问题忘了...
二面:
vector的原理;
会写模板吗? 手写模板stack;
实现函数int func(int n, float a[]),使1-n的出现概率为a[];
堆栈
指针引用的区别;
三面:
常见的页面置换算法;
实现LRU,复杂度o(1);
实现LRU-2, 在LRU的基础上当有重复的数据时优先丢弃出现单次的数据,复杂度任然要求为o(1);
求二叉树任意路径和最大值(leetcode124)
四面:
实现string to int (面试官提示考虑溢出和声明的int计算过程中可能溢出.写的方法跟他知道的不一样,又给我讲了下java里是怎么实现的)
已知函数F(5)为1-5等概率出现,怎么得到F(3)
接上一问,怎么得到F(7);
射击十个靶子,每个靶子可得1-10分,有多少种可能得到90分;
c++的unordered_map是否线程安全;
java的线程安全的hashmap是怎么实现的?为什么不在每个桶上加锁,锁是加在key上还是value上?
服务器只能处理十万请求,如何从一百万请求中选出十万请求?
服务器无法瞬时的统计出当前请求数,如何避免突然的请求增加?