面试 | 百度推荐架构开发--2020/5/22

我太难了,二分都写不出来了

前言

百度面试,面试官很和蔼,步步提示,我还是做不出来,太难了,面试不算太难都是最基础的,TCP/IP(握手、挥手),TOPK, 二分查找(太难了,都边界判定有错),反正挂了QAQ!

面试过程

  1. 自我介绍

我自我介绍了一下

  1. STL容器的底层实现数据结构

    1. vector是数组,map是红黑树都没说啊
    2. List是双向链表
    3. set,multiset,map, multimap都是红黑树
    4. deque是双端队列,list和堆的结合体
    5. stack和queue是list或deque
    6. priority_queue是vector
    7. hash_set为hash表,无序,不重复
    8. hash_multiset 为hash表
    9. hash_map 为hash表
    10. hash_multimap 为hash表
  2. 代码”二分查找(没写出来,简直耻辱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;
}
  1. 代码:两个数组topk(这特么太难,leetcode困难难度,我太难了或许这就是我二分没写出来的后果吧)

  2. TCP/IP协议四次挥手过程,TIME_WAIT 的目的

    目的

         1. 关闭流程更加可靠,保证更安全的连接,客户端在发送消息确认,服务端如果没有接收到此消息,服务端会发一次消息确认,此时TIME_WAIT就是此作用
         2. 为使旧的数据包在网络因过期而消失,若同一个客/服连接,前后两次连接的关闭和建立紧接着,TCP协议无法区分是两次不同的连接,若此时旧的连接的数据包过来,就会导致协议以为是新连接的数据包,传到应用层,导致数据错乱。TIME_WAIT也有防止这个的作用。使用TIME_WAIT后,在TIME_WAIT时间内客户端不再发消息,在网络上的数据包会由于超过2MSL后而消失,如此防止数据错乱。
    
  3. 自己项目(深度学习)

  4. 还有什么要问的

原文地址:https://www.cnblogs.com/Zak-NoS/p/12939247.html