面试 | 百度推荐架构开发--2020/5/22
我太难了,二分都写不出来了
前言
百度面试,面试官很和蔼,步步提示,我还是做不出来,太难了,面试不算太难都是最基础的,TCP/IP(握手、挥手),TOPK, 二分查找(太难了,都边界判定有错),反正挂了QAQ!
面试过程
-
自我介绍
我自我介绍了一下
-
STL容器的底层实现数据结构
- vector是数组,map是红黑树都没说啊
- List是双向链表
- set,multiset,map, multimap都是红黑树
- deque是双端队列,list和堆的结合体
- stack和queue是list或deque
- priority_queue是vector
- hash_set为hash表,无序,不重复
- hash_multiset 为hash表
- hash_map 为hash表
- hash_multimap 为hash表
-
代码”二分查找(没写出来,简直耻辱QAQ”)
int findBin(vector<int> arr, int n, int val){
int l=0;
int r=n-1;
int mid=(l+r)/2;
while(l<=r){
if(arr[mid]==val){
while(mid>=0&&arr[mid]==val){
mid--;
}
return mid+1;
}else if(arr[mid]>val){
r=mid-1;
}else{
l=mid+1;
}
mid=(l+r)/2;
}
return -1;
}
-
代码:两个数组topk(这特么太难,leetcode困难难度,我太难了或许这就是我二分没写出来的后果吧)
-
TCP/IP协议四次挥手过程,TIME_WAIT 的目的
目的
1. 关闭流程更加可靠,保证更安全的连接,客户端在发送消息确认,服务端如果没有接收到此消息,服务端会发一次消息确认,此时TIME_WAIT就是此作用 2. 为使旧的数据包在网络因过期而消失,若同一个客/服连接,前后两次连接的关闭和建立紧接着,TCP协议无法区分是两次不同的连接,若此时旧的连接的数据包过来,就会导致协议以为是新连接的数据包,传到应用层,导致数据错乱。TIME_WAIT也有防止这个的作用。使用TIME_WAIT后,在TIME_WAIT时间内客户端不再发消息,在网络上的数据包会由于超过2MSL后而消失,如此防止数据错乱。
-
自己项目(深度学习)
-
还有什么要问的