zoukankan      html  css  js  c++  java
  • 腾讯实习面经(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
    • 腾讯是个好公司,我很想去,但是老板不让。
    • 还是有很多不足,校招再战!
  • 相关阅读:
    JSP中的内容布局
    IDEA tomcat三步实现热部署
    十分钟git-服务器搭建ssh登陆
    postgres 备份数据库
    Hadoop集群部署-Hadoop 运行集群后Live Nodes显示0
    Hadoop集群部署
    DP:Miking Time(POJ 3616)
    DP:Islands and Bridges(POJ 2288)
    DP:Apple Catching(POJ 2385)
    DP:Skiing(POJ 1088)
  • 原文地址:https://www.cnblogs.com/lengender-12/p/6774960.html
Copyright © 2011-2022 走看看