腾讯TEG二,三面
后续:状态变为复试了,三面半个小时,面完秒挂
开局拷打半小时实习项目, 然后做题, 手撕回溯 (秒了, 后悔做太快了, 后面还有几个题), 两个场景设计题
一个非常多 string 的文件求频率最大的 10 个 string, 局限在一个机器上, 先 hash, 然后分别求各个 bucket 里面的 10 个频率最大的 string, 最后合并
2. 一个计时器类设计题, 要求实现的功能如下, 要求尽可能效率高
1. 可以插入一个计时器 (包含超时时间)
2. 输入当前时间, 将超时的计时器全部删除. 这个类不会主动删除超时的计时器, 需要人为输入当前时间
3. 输入某个时间 (不一定是当前时间), 得到还未超时的所有计时器 (不删除)
4. 可以更改某个计时器的超时时间
我说了两种方式, 不知道是不是最优的,
1. B+树
2. 一个 list (按照超时时间排序, 每个 node 包含超时时间和一个 vector 保存这个超时时间点所有的计时器) 和一个哈希表 (key 是计时器的 id, value 是 list 的迭代器)
还有一个指针题 (没答对), 答案是 2, 5, 有兴趣的可以试一下
```C
#include
int main( void )
{
int a[5]={1,2,3,4,5};
int *ptr=(int *)(&a+1);
printf("%d,%d",*(a+1),*(ptr-1));
return 0;
}
```
最后问了下八股文
进程之间的同步方式, 答了五种
虚拟内存
LSM 和 B+树的优劣势分析 (这个好多人问了)
自旋锁和互斥锁的区别和使用场景
总计耗时一个半小时, 希望能过呀
开局拷打半小时实习项目, 然后做题, 手撕回溯 (秒了, 后悔做太快了, 后面还有几个题), 两个场景设计题
一个非常多 string 的文件求频率最大的 10 个 string, 局限在一个机器上, 先 hash, 然后分别求各个 bucket 里面的 10 个频率最大的 string, 最后合并
2. 一个计时器类设计题, 要求实现的功能如下, 要求尽可能效率高
1. 可以插入一个计时器 (包含超时时间)
2. 输入当前时间, 将超时的计时器全部删除. 这个类不会主动删除超时的计时器, 需要人为输入当前时间
3. 输入某个时间 (不一定是当前时间), 得到还未超时的所有计时器 (不删除)
4. 可以更改某个计时器的超时时间
我说了两种方式, 不知道是不是最优的,
1. B+树
2. 一个 list (按照超时时间排序, 每个 node 包含超时时间和一个 vector 保存这个超时时间点所有的计时器) 和一个哈希表 (key 是计时器的 id, value 是 list 的迭代器)
还有一个指针题 (没答对), 答案是 2, 5, 有兴趣的可以试一下
```C
#include
int main( void )
{
int a[5]={1,2,3,4,5};
int *ptr=(int *)(&a+1);
printf("%d,%d",*(a+1),*(ptr-1));
return 0;
}
```
最后问了下八股文
进程之间的同步方式, 答了五种
虚拟内存
LSM 和 B+树的优劣势分析 (这个好多人问了)
自旋锁和互斥锁的区别和使用场景
总计耗时一个半小时, 希望能过呀
全部评论
膜拜大佬
上交👴怕他
佬,回溯具体是什么题呢
为啥挂呀
佬,问下,你一面到二面隔了多长时间啊
佬,什么部门呢
这是二面还是三面
相关推荐
10-30 11:38
重庆大学 C++ 点赞 评论 收藏
分享
点赞 评论 收藏
分享