【24年4月】腾讯QQ后台开发面试分享
一面-45min
算法
- 求多个数组的交集
面试官让我先说思路,我说了两个
- 位图(需要说清楚,因为数组给的是INT32,那么我们就需要2的32比特的长度,需要开一个
2^32/64
长度的long long数组) - set
后来用set来写的。不难,先用一个数组创建一个set,再创建一个tempSet,然后遍历数组,得到两个数组的交集tempSet,set=tempSet
,直到遍历完毕全部数组。
八股
- Linux用过那些命令?
二面
八股
- C++编译过程
- 编译出来的.O文件里面有几个?为什么两个.c文件会有两个.o,为什么不能是一个?(忘了)查了查,是因为这样可以方便分步编译,只需要重新编译有修改过的源文件就可以了,可以提高编译的速度
- .a和.so文件有什么区别?(动态库静态库)
动态库:运行时加载(可以由程序员控制),在内存中共享同一块空间,可以被多个进程使用。编译时只链接了动态库的符号表,可执行程序小,且方便独立更新库(增量更新)。缺点是运行环境中必须包含动态库。
静态库:编译时就被添加到了最终的可执行程序中,可以脱离于库文件而运行。缺点是静态库更新时,需要重新编译整个可执行程序,在进行软件更新的时候会很麻烦。
- 什么时候用动态库什么时候用静态库?区别?
- C++读写锁怎么实现的?(不知道,瞎蒙了个用计数器来实现)
- 计数器本身的操作要用互斥锁保证,互斥锁怎么实现的?(我说调用了系统原语,面试官追问底层汇编操作,不会)
- C++高版本新特性(说了几个14和17的)有没有什么性能提升的?(不知道,干)
- C++深拷贝是什么?
- 什么使用深拷贝?什么时候可以不用?(这里我提到了move移动构造)
- 实现一个LRU(共享屏幕用本地环境写的,写完之后说思路)
最终一二面都过了,后面拿到了pdd的实习offer,考虑再三还是选择了pdd,年轻的时候拼一把。当前在pdd实习的团队主要是做大模型方向的,工作内容对我还是挺有挑战的,实习期间技术进步挺快的,我们团队的leader和导师人都挺nice的,技术上也都是大牛。现在我们团队在业务上拓展的很快,非常缺人,欢迎工程算法的应届同学来撩。
【拼多多校园招聘】内推链接:https://careers.pinduoduo.com/campus/grad/detail?t=jvPkySdGlL,内推码:jvPkySdGlL。服务端研发工程师 期待你的加入!我们一起,无拼不青春!(通过此链接投递计入内推,内推简历优先筛选~)
#24届软开秋招面试经验大赏##正在实习的碎碎念#