zoukankan      html  css  js  c++  java
  • 面试 | 百度推荐架构开发--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. 还有什么要问的

  • 相关阅读:
    在网易和百度实习之后,我才明白了这些事
    从Java小白到收获BAT等offer,分享我这两年的经验和感悟
    曾经做的一个JS小游戏——《Battle City》
    适配器(Adapter)模式
    装饰器(Decorator)模式
    Java IO
    JDBC中驱动加载的过程分析
    从PipedInputStream/PipedOutputStream谈起
    从InputStream到ByteArrayInputStream
    JDK中的动态代理
  • 原文地址:https://www.cnblogs.com/Zak-NoS/p/12939247.html
Copyright © 2011-2022 走看看