我来还愿了

下午收到了字节跳动游戏研发工程师(杭州)的意向书了,问问意向书稳吗?

下面附上面经

一面 ——20190903

  1. volatile

  2. extern "C"

    提示编译器(确切的说是提示c++的编译器)使用C语言的方式进行编译或者链接。(==如果在c++链接器下调用使用c编译器的文件(比如dll)那系统会提示找不到函数,为了解决这个问题就引入了extern "C"==)

  3. c++编译函数和c编译函数有什么区别

    c++支持函数重载,而过程式语言c则不支持。函数被c++编译后在符号库中的名字与c语言的不同。例如,假设某个函数的原型为:
    void foo(int x, int y);
    该函数被c编译器编译户在符号库中的名字是_foo,而c++编译器则回产生像_foo_int_int之类的名字(不同的编译器可能生成的名字不同,但是都采用了相同的机制,生成的新名字成为“mangled name”
    _foo_int_int这样的名字包含了函数名、函数参数数量以及类型信息,c++就是靠着中机制来实现函数重载。例如,在c++中,函数void foo(int x, int y)与void foo(int x, float y)编译生成的符号是不相同的,后者是_foo_int_float

  4. 大小端——代码测试

  5. c++中迭代器失效情况讲一下

  6. TCP三次握手过程

  7. TCP中的快重传,选择重传(不知道是啥)

  8. 重构二叉树
    附上现场手撕的代码(手撕代码写的不好勿喷):

    #include <iostream>
    #include <vector>
    using namespace std;
    struct TreeNode{
     int val;
     TreeNode* left;
     TreeNode* right;
     TreeNode(int value):val(value), left(nullptr), right(nullptr){}
    };
    TreeNode* constructTree(vector<int>& preVec, int preStart, int preEnd, vector<int>& inVec, int inStart, int inEnd);
    int main() {
     int pre[7] = {4,2,1,3,6,5,7};
     int in[7] = {1,2,3,4,5,6,7};
     vector<int> preVec(pre, pre + 7), inVec(in, in + 7);
     TreeNode* root = constructTree(preVec,0, preVec.size() - 1, inVec, 0, inVec.size() - 1);
    
     cout << root->val << endl;
    
     return 0;
    }
    TreeNode* constructTree(vector<int>& preVec, int preStart, int preEnd, vector<int>& inVec, int inStart, int inEnd){
    
     if(preStart > preEnd || inStart > inEnd){
         return nullptr;
     }
     int rootVal = preVec[preStart];
     int i = inStart;
     for(; i < inEnd; ++i){
         if(rootVal == inVec[i]){
             break;
         }
     }
     TreeNode* root = new TreeNode(rootVal);
     root->left = constructTree(preVec, preStart + 1, preStart + i - inStart, inVec, inStart, i - 1);
     root->right = constructTree(preVec, preStart + i - inStart + 1, preEnd, inVec, i + 1, inEnd);
    
     return root;
    }

    二面——20190904

    47分钟

  9. struct和class区别

  10. malloc和new区别

  11. 如果用malloc创建一个内存区域,想要在这个内存区域上创建实例要怎么做:placement new

  12. 虚拟内存,为什么需要虚拟内存

  13. 虚拟内存段页式需要访问内存几次

  14. 虚函数原理

  15. 如何创建进程

  16. 什么是僵尸进程和孤儿进程

  17. 计算机网络每层都有什么协议

  18. TCP与UDP的区别是什么

  19. 如何做到只有一个实例:单例模式

  20. 智能指针

算法题:
图片说明
图片说明
附上现场手撕的代码(手撕代码写的不好勿喷):

#include <iostream>
#include <vector>
using namespace std;
struct ListNode{
    ListNode* next;
    int val;
    ListNode(int value):val(value), next(nullptr){}
};
int main() {

    int n;
    cin >> n;
    vector<int> nums(n);
    ListNode* dummyOdd = new ListNode(-1);
    ListNode* dummyEven = new ListNode(-1);
    ListNode* pOdd = dummyOdd;
    ListNode* pEven = dummyEven;
    for(int i = 0; i < n; ++i){
        cin >> nums[i];
        if(((i + 1) & 0x01) == 1){
            ListNode* pNode = new ListNode(nums[i]);
            pOdd->next = pNode;
            pOdd = pOdd->next;
        }else{
            ListNode* pNode = new ListNode(nums[i]);
            pNode->next = pEven->next;
            pEven->next = pNode;
        }
    }
    ListNode* dummy = new ListNode(-1);
    ListNode* pNode = dummy;
    pOdd = dummyOdd->next;
    pEven = dummyEven->next;
    while(pOdd && pEven){
        if(pOdd->val > pEven->val){
            pNode->next = pEven;
            pEven = pEven->next;
            pNode = pNode->next;
        }else{
            pNode->next = pOdd;
            pOdd = pOdd->next;
            pNode = pNode->next;
        }
    }
    if(pOdd){
        pNode->next = pOdd;
    }

    if(pEven){
        pNode->next = pEven;
    }
    ListNode* res = dummy->next;
    delete dummy;
    delete dummyEven;
    delete dummyOdd;
    while(res){
        cout << res->val << " ";
        res = res->next;
    }
    cout << endl;  
    return 0;
}

三面——190905

上来就要做题,一脸懵逼,完全不问基础问题,不说了上图吧
图片说明
图片说明
图片说明
图片说明

hr面——20190909

15分钟左右

  1. 自我介绍
  2. 你对字节做游戏有什么看法
  3. 你为什么想做游戏
  4. 为什么考研不考计算机
  5. 你做的成就感最大的事是什么
  6. 你期望的工作地点是什么
  7. 自己的性格是怎么样的
  8. 你还有什么问题?
#字节跳动##面经##校招##游戏研发工程师#
全部评论
许愿明天华为,阿门🙏🙏🙏
点赞 回复
分享
发布于 2019-09-22 17:18
我也想知道字节意向书稳不稳。。
点赞 回复
分享
发布于 2019-09-22 17:20
联想
校招火热招聘中
官网直投
老哥,三面做题这个,是每个问题都要写代码的吗
点赞 回复
分享
发布于 2019-10-26 15:09
10w个怪物是什么思路 求教
点赞 回复
分享
发布于 2019-10-26 15:49
冰雷火三个属性组合 这不是卡尔吗?
点赞 回复
分享
发布于 2019-10-26 21:10
发offer了吗
点赞 回复
分享
发布于 2019-10-26 22:18

相关推荐

头像
不愿透露姓名的神秘牛友
03-13 14:57
点赞 评论 收藏
转发
5 22 评论
分享
牛客网
牛客企业服务