26.3.23 拼多多架构一面

#牛客AI配图神器#一、自我介绍 / 基本情况 / 求职意向
1.你先做一下简单的自我介绍。
2.你在字节实习了多久?
3.你怎么进去的?是自己找的,还是同学内推之类的?
4.你在字节主要做了什么?
5.第一个点是缓存特征优化,这块做了多久?
6.这是你一个人做的,还是有人带着你做的?
7.代码大部分都是你写的吗?
8.你平时主要用什么开发语言?

二、C++ 智能指针 / 内存管理
10.你们用的什么智能指针?是哪一种?
11.你说的这个智能指针,实现原理是什么?
12.shared_ptr 用过吗?
13.shared_ptr 的实现原理是什么?
14.它和你刚刚说的unique_ptr指针有什么区别?
15.shared_ptr 是线程安全的吗?
16.多线程去用它或者改它呢?
17.你怎么证明没有内存泄漏?

三、concurrent hashmap / 容器 / 并发结构
18.你简历里写的 concurrent hashmap,是 STL 里面的吗?
19.它怎么做的?
20.它的锁是什么?
21.这个 hashmap 是整张表一把锁吗?

四、实习项目:缓存优化 / 指标 / SQL 优化
22.你这里写 Android 优化 4.8%,这个是什么情况下的?
23.你们这个模块本身优化了多少?
24.这个优化结果你们取的是平均值,还是 P99?
25.你们是怎么测的?测了多少台设备?
26.你第二个点写的是 SQL 重复优化,这个我没太看明白。你讲一下。
27.你们这个不是用缓存来优化,而是在实现方式上优化,是吗?
28.你们缓存的话,怎么控制过期时间?
29.如果两次查询一模一样,命中了缓存,就不再到底层查了,是吗?

五、右值引用 / 移动语义 / 构造函数
class String
public:
    String(const String &p) {
    }
    String(String &&p){
    }
private:
    char *s;
    int size;
}
32.你对右值引用了解吗?
33.右值引用的原理是什么?
34.它是在编译期还是运行时生效?
35.那你把拷贝构造和移动构造写一下吧。
36.String(const String &p) 应该怎么写?
37.String(String &&p) 应该怎么写?
38.拷贝构造和移动构造的区别是什么?
39.为什么移动构造里要把源对象置空?
40.这里如果只做浅拷贝,会有什么问题?
41.这个类需不需要析构函数?为什么?
42.如果有析构函数,这个类还应不应该补赋值运算符重载?

六、编程题:三个有序数组合并
43.有三个已经排好序的数组,现在要把它们合成一个有序数组。
44.除了结果本身,额外空间复杂度要求 O(1),你怎么做?
45.你这个方案(三指针)的时间复杂度是多少?
46.如果三个数组长度分别是 m、n、k,时间复杂度怎么表示?
47.如果三个数组长度都记作 N,那复杂度是多少?
48.如果我把约束去掉,不限制你额外空间,要求时间尽量快,你会怎么做?
49.你为什么会想到优先队列?
50.重新放到堆里为什么不一定更快?
51.如果我再告诉你,这些 int 数值的取值范围是固定的,你有没有更快一点的方法?
52.图里写的 mergeAll(const vector<vector<int>>& inputs) 这种两两合并思路,整体复杂度是多少?

七、估算题
60.假设上海每年出生人口大概 16 万,你估一下上海大概有多少所小学。
全部评论
搭车 想来我司看看的 可以看我主页帖子 欢迎联系
点赞 回复 分享
发布于 昨天 10:56 上海

相关推荐

03-30 00:09
吉林大学 C++
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务