腾讯实习面经(offer)

腾讯的实习招聘也算是告一段落了。从内推到正式实习生招聘,总结一下。看了这么多面经,也把自己的经历写一下,有需要的朋友可以参考一下。毕竟互帮互助嘛。

内推

腾讯内推的经历比较惨淡,面了三个部门,都跪在一面了。讲真,有点心塞。

1.WXG

  • 生平第一次的电话面试交给了WXG,一上来给了18道题让做,一共给了40分钟左右,能做多少算多少。当时做了8道出来。把这些题列出来吧,供大佬们参考。
    //1.  反转字符串,在原串上反转
    char * reverse( char * s )
    
    
    //2.  给定一个整数,按10进制来看,计算里面包含多少个0。不能用snprint f转成字符串。
    int  count( int  value )
    
    //3.  从一个双向链表中删除一个节点。head是链表头节点,toDelete是已经找出来要删除的节点。
    struct LinkNode {
        struct LinkNode * prev, * next;
    };
    struct LinkNode * head;
    void remove( struct LinkNode * todelete )
    
    //4.  两个有序(从小到大)单链表,合并为一个有序的单链表
    struct LinkNode {
        int  value;
        struct LinkNode * next;
    };
    struct LinkNode * merge( struct LinkNode * firstLink, struct LinkNode * secondLink )
    
    //5.  倒转单链表(在原链表上倒转)
    struct LinkNode {
        int  value;
        struct LinkNode * next;
    };
    struct LinkNode * reverseList( struct LinkNode * head )
    
    //6.  有一个二叉树,每个节点的值是一个整数。写一个函数,判断这颗树中是否存在从根到叶子节点的一个路径,这个路径上所有节点之和为某一个值。存在返回1,否则返回0。
    struct TreeNode {
        int  value;
        struct TreeNode * left, * right;
    };
    int haspath( struct TreeNode * root, int  value )
    
    //7.  给定一个递增循环整数数组,从里面找出最小的元素,使用的算法越快越好。特别地,最小的元素可能出现在数组中间。比如:50, 52, 63, 90, 3, 8, 15, 44。
    int  findmin( int  array[], int  count )
    
    //8.  在有序列表中插入一个节点
    struct LinkNode {
        int  val;
        struct LinkNode * next;
    };
    struct LinkNode * insert( LinkNode * head, LinkNode * node )
    
    //9.  二叉树的深度
    struct TreeNode {
        int val;
        struct TreeNode * left, * right;
    };
    int  depth( TreeNode * root )
    
    //10. 给定两个字符串 s1 和 s2 ,从 s1 中删除在 s2 中出现过的字符。
    char * remove( char * s1, const char * s2 )
    
    //11. 从有序链表中去除重复的元素
    (1, 1, 3, 3, 3, 5, 5, 5, 9, 9, 9, 9) -> (1, 3, 5, 9).
    struct LinkNode {
        int val;
        struct LinkNode * next;
    };
    void remove( LinkNode * head )
    
    //12. 有一个字符串列表,从中找出按字典序最大和最小的串。
    char * strlist[ N ] = {
        "abc",
        "123",
        ....
        "def"
    };
    
    void find( char * strlist[], char ** strmin, char ** strmax )
    //13. 设定如下的对应关系( A=1,B=2,C=3,...,Z=26,AA=27,AB=28,...,AAA=xxx,... ),编写一个转换函数,根据上面的规则把一个字符串转换为数字
    int StrToInt ( const char * str );
    
    
    //14. 在二叉排序树上面找出第3大的节点。注意:不能把二叉树全量存储到另外的存储空间,比如存储到数组中,然后取出数组的第三个元素。
    struct TreeNode {
        int  value;
        struct TreeNode * left, * right;
    };
    struct TreeNode * find( struct TreeNode * root );
    
    //15. 从一个整数数组中,找出递增的最长序列。
    struct  Result {
        int  offset; // 序列的开始位置
        int  count;  // 序列的长度
    };
    int findCont( int  array[], int  count, struct  Result * result );
    
    
    //16. 从单链表中找出中间的节点。
    struct LinkNode {
        int val;
        struct LinkNode * next;
    };
    struct LinkNode * find( LinkNode * head );
    
    //17. 两个有序(从小到大)单链表,构造一条新链表,包含同时出现在两个链表的节点
    struct LinkNode {
        int  value;
        struct LinkNode * next;
    };
    struct LinkNode * int ersect( struct LinkNode * firstLink, struct LinkNode * secondLink );
    
    //18. 判断一个单链表是否出现环,空间复杂度不能是O(N)
    struct LinkNode {
        struct LinkNode * next;
    };
    //返回 1:有环,0:无环
    int iscycle( struct LinkNode * head )
    
  • 40分钟后,然后把做了的题和面试官一起过一遍,看是否有错,是否可以优化等等
  • 最后聊了一下线程池的问题。让我准确计算出一个系统中的线程池的数量设置多少个合理。(这个一脸懵逼,没做出来,要是有大佬懂的话,还请不吝赐教)
  • 这一面快两个小时了吧,至此, WXG 挂

2.TEG

  • TEG的小哥哥还是比较温柔,问了特别多的STL,vector,list
  • map,hashtable的区别,怎么实现的,适用场景
  • epoll的使用
  • 线程池的设计
  • 项目中可以改进的地方
  • 。。。。。时间太久,记不住了
  • 感觉这次还不错的,但是,至此,TEG挂

3.IEG

  • 内推里面最不温柔的就是IEG了
  • 项目中mysql是怎么用的
  • 1.算法题。一个数组中的数都出现两次,只有一个出现一次,找出来
  • 2.算法题。一个数组中的数都出现三次,只有一个出现一次,找出来
  • 3.算法题。假设有一个随机函数可以随机生成[0,7900],然后现在有3000人,设计一个函数从3000人中等概率选取一个人
  • 至此,第二个和第三个算法题都不太符合小哥哥的预期,IEG挂

正式校招

笔试

  • 腾讯笔试选择题都是不定项,而且不能倒回。中间手一抖,多点了几下,结果直接跳过1-2两个题,至此,笔试崩

一面

  • 原以为笔试过不了,都已经准备去霸面了。结果收到了面试通知

  • 写程序。实现int 转 const char* ,函数原型如下:

    const char * ToString(int val);
    
  • 写程序的时候,本来不允许用malloc,我用了,又让改。改成了全局变量,结果又指出了另一个错误:

    printf("%s %s
    ", ToString(123), ToString(456));
    

    让猜结果是多少,然后又引发了一段血案,反正最后也不自信,也不敢肯定结果。。。

  • 聊了一下项目

二面

  • 二面一共15分钟不到,全程和面试官闲聊,没有一个技术问题。
  • 自我介绍
  • 兴趣爱好
  • 能不能实习
  • 。。。。忘了
  • 最后,没忍住,问了一下,为什么不问技术问题,是不是挂了。答曰:前面已经有同事考验过你的技术了。。

hr面

  • hr面半个小时
  • 自我介绍
  • 科研情况
  • 实验室情况
  • 家庭情况
  • 未来规划
  • 有没有什么问题
  • 没了

总结

  • 今天拿到TEG实习offer
  • 腾讯是个好公司,我很想去,但是老板不让。
  • 还是有很多不足,校招再战!
原文地址:https://www.cnblogs.com/lengender-12/p/6774960.html