字节跳动一面(感觉凉凉)

1.     自我介绍;

2.     进程地址空间;

3.     了解多态吗?虚函数底层?虚函数表是每个对象有一份还是每个对象有一份?虚函数表存放在哪个位置?

4.     了解编译原理吗?文本到可执行文件过程?

5.     讲一下静态链接和动态链接;既然动态链接内存中有一份,那多个程序都使用这个动态链接库,可以修改里面东西吗?

6.     了解网络吗?用过TCPUDP吗?TCPUDP区别;

7.     讲一下TCP通信socket,客户端和服务端都做了什么;

8.     服务端和客户端什么时候建立三次握手;

9. Listen有什么用?

10. TCP怎么确保可靠的;

11.  拥塞控制了解吗?讲一下;

12. Http了解吗?有哪些请求方法(忘了具体啥意思),回答(getposthead),能再详细具体讲下吗?

13. Https了解吗?

14.  数据库学过吧?知道哪些数据库?

15.  写一个sql吧,两个表,有一个字段相同,怎么找到交集; join

16.  数据结构了解一下吧?vector讲一下;

17. STL用过吧,有哪些,底层实现;

18.  二叉树有哪些遍历方法?

19.  二叉平衡树和二叉树区别?

20.  (二叉平衡树了解不多)那你讲一下红黑树,为什么用红黑树不用二叉平衡树;

21. B树和B+树,那和二叉平衡树区别;

22.  两个编程题:
寻找重复数
 //空间复杂度O(n)
    // int findDuplicate(vector<int>& nums) {
    //     unordered_set<int> temp;
    //     for(int val : nums){
    //         if(temp.insert(val).second == false){
    //             return val;
    //         }
    //     }
    //     return -1;
    // }
    //思路1:用快慢指针判断:创建两个指针slow和fast同时指向头节点,
    //      然后slow每次向后遍历一个节点,fast每次向后遍历两个节点,如果单链表没有环的话那么slow
    //      将永远追不上fast,而如果单链表有环的话slow就会追上fast。第一次相遇之后,把指针slow拉回到链表的起点,
    //      然后把fast的速度改为每次走一步即和slow速度相同,fast把第一次相遇点作为起点,
    //      那么当slow和fast再次相遇的点就是圈的起点 https://blog.csdn.net/weixin_39789689/article/details/82421684
    // int findDuplicate(vector<int>& nums){
    //     int fast = 0,slow = 0;
    //     do{
    //         fast = nums[nums[fast]];
    //         slow = nums[slow];
    //     }while(fast != slow);
    //     slow = 0;
    //     while(fast != slow){
    //         fast = nums[fast];
    //         slow = nums[slow];
    //     }
    //     return slow;
    // }
    //silu2:采用二分法,先计算mid,然后统计数组中小于等于mid元素个数K,若K<=mid说明重复值在[mid+1,n]之间,否则
    //       重复值在[1,mid],使用抽屉原理,是由于重复元素导致两遍不平衡,如果无重复元素,两边个数是一样的,
    //       然后依次类推,直到搜索完成,此时的low就是我们要求的重复值。
    int findDuplicate(vector<int>& nums){
        int l = 0, r = nums.size();
        int m = 0;
        while(l < r){
            m = l + (r - l) / 2;
            int count = 0;
            for(int i = 0; i < nums.size(); ++i){
                if(nums[i] <= m){++count;}
            }
            if(count <= m){
                l = m + 1;
            }
            else{
                r = m;
            }
        }
        return l;
    }
实现一个计算器 + - * / ()

#字节跳动##C++工程师##提前批##校招#
全部评论
这是哪个部门啊😂
1 回复 分享
发布于 2020-07-27 19:03
楼主你好,请问你是实习、校招还是社招?岗位是什么?开发的话,是Java方向还是C++方向?或者其他语言方向~
点赞 回复 分享
发布于 2020-07-27 16:23
这也太难了
点赞 回复 分享
发布于 2020-07-27 19:02
感觉越是挂的越是问的难,也不知道是因为容易挂才问的难还是问的难才容易挂。我兜兜转转今天面了客户端,一面没马上通知二面,按字节的惯例估计就是挂了😑,现在等着明天的感谢信了。。。
点赞 回复 分享
发布于 2020-07-27 22:28
好难= =
点赞 回复 分享
发布于 2020-07-27 23:17
第五题后面那一问怎么回答啊
点赞 回复 分享
发布于 2020-07-28 16:46

相关推荐

无情咸鱼王的秋招日记之薛定谔的Offer:好拒信,偷了,希望有机会用到
点赞 评论 收藏
分享
昨天 11:07
河南大学 Java
宇宙厂 测开 n*15
丘丘给个offer:有后选后
点赞 评论 收藏
分享
评论
2
12
分享
牛客网
牛客企业服务