拼多多C++服务端一面凉经

3.15 ppd春招,服务端一面,准备的和问的不在一个频道,手撕也烂完了,感觉凉完了

1. 提到MySQL使用B+树作为存储结构,讲讲B+树的实现
2. 为什么使用B+树而不是红黑树或者B树作为存储结构
3. B+树更适合存储UUID类型的key还是自增类的key,为什么(问到这里脑子宕机了,当时答的是uuid,现在想想显然是自增key使用B+树存储起来更方便。。。)
4. 提到了操作系统,讲讲进程和线程的区别
5. 对4的扩展,讲讲进程间通信和线程间通信有哪些方式(进程间:管道,信号量,消息队列,socket,共享内存等等很多,面试时完全没想起来有这么多,就说了管道,队列,socket,线程间:锁,条件变量,以及大部分进程通信方式)
6. 用户态和内核态的区别,为什么要区分用户态和内核态(os这块儿大伙真得多看,服务端是真喜欢拷打os这块儿)
7. 提到了系统调用,给出一个场景:从我在这个聊天框(pdd的线上面试平台提供的)给你发送了一个消息,到你那边接收到这个消息,中间发生了几次系统调用 (具体不太记得了,大意类似如此,理不直气也不壮的答了。。)
8. 对7的扩展,如果是发送的是文件而不是一段话,中间过程会有什么不一样
9. 你说你对Redis有了解,讲讲为什么有MySQL作为数据存储,还需要Redis
10. 讲讲你觉得Redis可以用来做什么业务

手撕:某业务使用的时间格式为`HH:MM:SS weekday`,现给定一个时间区间[start, end],要判断目标时间点(target) 是否在这个区间内,如果在这个区间,直接输出0;如果不在这个区间内,那么从目标时间点开始最少需要过多久(单位为秒),才能进入给定的时间区间(实现起来很简单,但是临场写连续出了bug,面试官也是一句话没说,心态直接炸了,到最后也没完全过测试点。。服了)
样例:
    输入: start="20:00:00 3" end = "21:00:00 5" target = "20:00:00 4" 输出:0
    输入: start="20:00:00 3" end = "21:00:00 5" target = "20:00:00 1" 输出:172800

最后没过是因为有个测试用例类似 start="22:00:00 5" end = "20:00:00 5" target = "19:00:00 5",其实是上周五十点到这周五八点的意思,所以target算是在这段区间里的,完全没考虑到还有这回事,最后时间不够了,来不及改了

面试平台的IDE不能编译运行,只能面试官那边编译运行得到结果,结果被IDE惯坏的我一上来就猛猛写bug,我连着几回编译出了问题,心态崩了,面试官也是成功没绷住,允许我使用自己本地的IDE了,结果最后也还是没a出来

我的思路:直接将时间转换成秒进行比较,如果start在end之前,就给end的weekday加7天,然后判断target或者target+7天在不在区间。
全部评论
我算法写完,我就发现平台不能运行。然后面试官也不告诉我运行结果。我人傻了。面试官全程黑脸,给哥们搞崩溃了。现在流程还在面试中,不如给我个痛快,挂了得了
1 回复 分享
发布于 03-16 13:10 上海
同济学历,包进二面
1 回复 分享
发布于 03-16 16:17 上海
佬技术栈是java还是c++
1 回复 分享
发布于 03-17 21:59 上海
佬,几点面的,说什么时候有结果了吗
点赞 回复 分享
发布于 03-15 23:31 安徽
手撕题有点难
点赞 回复 分享
发布于 03-16 18:50 辽宁
这个特殊测试用例情况得在题目中说吧 不然正常人能想到从上周到这周吗 岂不是还可以上上周到这周 跟树上骑个猴有啥区别
点赞 回复 分享
发布于 03-17 13:03 陕西
佬,出结果了吗已经?
点赞 回复 分享
发布于 03-17 16:56 湖北
有人收到两次1面吗,我上周六一面,然后今天又收到一面
点赞 回复 分享
发布于 03-18 01:24 德国
撕哈希表可还行
点赞 回复 分享
发布于 03-21 14:51 山东
他妈的我也是这题,我觉得我思路很好只是不知道怎么处理函数跟他吵起来了😅
点赞 回复 分享
发布于 03-23 15:03 美国

相关推荐

03-20 00:25
河北大学 后端
#牛客AI配图神器####拼多多服务端一面面经,全程项目1. 面试官先自我介绍(基础架构部门2. 自我介绍3. 项目是和同学一块写的吗4. 用户该上传什么样的代码,如何处理数据5. 在项目中,对websocket是怎么理解的?6. 为什么选择websocket,对比其他实现长连接协议,为什么选择websocket?7.  用到mybatisplus做crud,项目的数据表是怎么设计的?8. 只能用代码操作贪吃蛇吗?9. 如何实现用户操作贪吃蛇?10. 匹配系统中,手动加锁策略怎么理解?11. 微信支付是如何实现的?12. 如何理解布隆过滤器?解决什么问题?13. 布隆过滤器如何实现的?14. 为什么一堆哈希叠加起来能实现这个效果?15. 如何进一步减少布隆过滤器误判率?16. 如果搞很多次哈希,会有什么问题?17. 为什么用threadlocal去存储id?会不会有什么问题?18. threadlocal在项目中如果遇到跨线程会不会有什么问题?19. 笔试题做的怎么样?如何评价上次的笔试题?20. 看你笔试题都是c++写的,你怎么理解c++?21. 你觉得c++和java有什么区别?分别有什么好处坏处?22. 你觉得java语言为什么要设计垃圾回收机制?23. 你觉得这两种语言在哪种情况下更适用?算法题,lca,一开始想写树链剖分,后来发现只需要找一对点的lca就很简单了。讨论实现方式反问:1. 一共几面?2. 如何评价? 算法题还可以,工程项目深度不够3. 对实习生要求,技术掌握到什么程度?还好吧,主要是看基础再正问:1. 实习能保证两个月?2. 工作地是上海,能接受吗?
查看28道真题和解析
点赞 评论 收藏
分享
评论
2
46
分享

创作者周榜

更多
牛客网
牛客企业服务