pdd线下面回忆版 后端开发 10.24

时间防定位,不重要,重点看问题
一、手撕部分
1.实现一个HashMap,支持多种数据类型,有较高效的读取、放入数据实现
2.n个节点的二叉树最多有几种形状
3.反转链表
4.反转链表中的一部分
5.用开放地址法实现一个HashMap,key和value是int,不考虑扩容,hash用mod求得,数组大小固定为5
追问:怎么优化?可以在查找的时候发现为null就停止查找吗?
追问:在存在hash碰撞的时候,开放地址法比拉链表好,效率高100倍,为什么?
6.用java实现sql语句:left join,字段类型为String,class给出,实现方法即可
追问:目前两个for嵌套实现的时间复杂度?除了两个for嵌套有没有可以优化的?
追问:右边放map的话,key和value分别是什么?有没有最好和最坏的情况,时间复杂度是多少?
追问:字段类型为很大的file的话,怎么做(大数据)?
二、实习项目+相关内容追问(以下保留了一些有参考价值的问题,纯项目相关问题已去除)
9.以上这个发送命令、下游执行命令,框架等待响应结果,返回,这个过程的协议栈是什么?(即你框架里发送命令、执行命令这一整套跨网络通信,底层跑的是什么网络协议?从应用层到传输层是怎么分工的?你知不知道你用的 gRPC 底层是基于什么传输的?)
10.以上过程,从用户态和内核态的角度说一下整个过程?(你写Java代码发送命令时,数据是怎么在操作系统底层流转的?你知不知道什么是系统调用?为什么你的执行池线程阻塞等待时,CPU不会爆掉?)
11.MCP的目的是什么?

参与讨论