百度提前批一二三面 (许愿offer)

更新:8/28等了大半个月终于收到测评,不知道后续结果会怎样,求个offer。

百度一面:(2020年8月2日 星期日 下午3:00 - 下午4:00 一小时)

1、 自我介绍

2、 上来先问了半个小时项目

3、 然后二十多分钟c++基础,比如:

4、 讲一下网络io复用;

5、 讲一下三次握手和四次挥手过程,即状态转换;

6、 讲一下智能指针;

7、 什么时候用智能指针;

8、 栈溢出?什么情况下会出现栈溢出?

9、 拷贝的函数有哪些?

10、         客户端和服务端建立连接后,怎么知道可以发送多大长度的报文?(不知道,被讲解了一下,TCP连接时可以设置一个字段MTU什么的)。

11、         还有挥手时,服务器重启,但是端口还在怎么办?

还有很多其他奇奇怪怪的知识,问了挺多,很久记不清了。

编程题:给你一个文件,有很多行(1000行),有三列,其中中间那列是数字,如何按照这个数字将这个文件进行一个排序。


bool cmp(const pair<int,string>& a,const pair<int,string>& b){
    return a.first < b.first;
}

int main(){
    string filename = "F:\\workspace\\C++\\letcode\\test.txt";
    string filename1 = "F:\\workspace\\C++\\letcode\\sort.txt";
    fstream oss(filename, ios::in);
    ifstream infile(filename);
    ofstream outfile(filename1);
    if(!infile){
        cout << "open file : "<< filename << " error !"<<endl;
        exit(1);
    }
    if(!outfile){
        cout << "open file : "<< filename1 << " error !"<<endl;
        exit(1);
    }
    vector<pair<int,string>> index;
    string s1, s2;
    int key;
    while(infile>>s1>>key>>s2){
        string ss;
        ss = s1 + " " + to_string(key) + " " + s2;
        index.push_back(pair<int,string>(key,ss));
    }
    sort(index.begin(), index.end(), cmp);
    for(pair<int,string> val : index){
       outfile << val.second << endl;
    }
    infile.close();
    outfile.close();
    system("pause");
    return 0;
}


最后反问环节

百度二面:(面试官设备有问题,晚了几分钟,说少问两个问题)(2020年87日 星期五 下午4:00 - 下午5:00 一小时)

1、 自我介绍;

2、 你面的是c++,那你说一下对c++的认识?

3、 你既然说C++运行快,那和Javapython相比为什么快?有哪些原因让c++快;

4、 接手一个项目,有内存泄漏,你应该如何快速定位?

5、 那你说一下你平时遇到的内存泄漏?

6、 你有哪些方法避免内存泄漏?检测内存泄漏?(我说到智能指针)

7、 智能指针weak_ptr怎么解决shared_ptr相互引用?可以直接得到shared_ptr吗?

8、 shared_ptr是线程安全的吗?以及原因?

9、 说一下重载和重写?

10、         重载可以使用返回值做判别吗?为什么?

11、         那如果我有两个函数,函数名和参数列表相同,返回值不同,就希望这两个函数重载怎么办?

12、         重写用到virtual,那是不是一定要加virtual?如果不加会怎么样?

13、         模板类有用过吗?有哪些?

应该还有一些其他问题,当时没记,暂时想不起了。

后面是两个算法题。

1、 有很对序列对比如A>FS>J……,返回一个有序的序列(序列对可能有重复的,但可以保证是一个完整序列,中间不会有断点)。当时时间不多了,面试官说可以说下思路,问应该用什么算法做,复杂度是多少?

2、 给你一个文件,有很多行,怎么打印出来?(你只有5分钟时间了)。写完跑出来后,还有时间又问,那你觉得这个代码实际在用的时候应该考虑注意哪些问题呢?

3、 最后反问环节


百度三面:(应该是个主管,面的时候还在很忙敲键盘)(2020/08/10 20:00 - 21:00一小时)

1、 自我介绍

2、 选择你的一个项目讲一下你其中是怎么做的,中间遇到啥,怎么解决的?

3、 进程和线程的区别?

4、 进程和线程同步的方法有哪些?

5、 Linux系统下查询资源使用情况的命令有哪些?

6、 Selectepoll的区别讲一下?

7、 有两个有序数组,如何找到交集?(一开始说用set,面试官说有重复的,后来又说用map,还让说一下时间和空间复杂度)。说有没有空间复杂度更低的方法?(从a选一个数,在B二分查找,不过时间复杂度O(nlogn)),又问有没有时间复杂度O(n),空间复杂度更低的方法?(因为有序,使用两个指针,相同加入结果集,谁小谁右移,直到有一个到达数组尾端)。后来面试官应该有事,突然说那我们写代码实现一下吧。


int main(){
    vector<int> a = {1, 2, 3, 4,4, 5, 6, 7};
    vector<int> b = {2, 3, 4,4, 5, 8};
    vector<int> res;
    int i = 0, j = 0;
    int lena = a.size(), lenb = b.size();
    while (i < lena && j < lenb){
        if(a[i] == b[j]){
            res.push_back(a[i]);
            ++i;
            ++j;
        }
        else if(a[i] < b[j]){
            ++i;
        }
        else{
            ++j;
        }
    }
    for(int val : res){
        cout << val << endl;
    }
    system("pause");
    return 0;
}


8、 写完通过之后,问就这个程序,让你设计测试用例,应该怎么设计?

9、 有一批url,有几百亿个,可能有重复的,内存放不下,应该如何去重?(拆分,hash?)

可能还有一两个技术问题,暂时想不起来,感觉面试官有点忙,问的不多。

后面将近二十分钟就开始聊人生了:

1、 你觉得从项目中你收获成长最大的是什么?

2、 你能说一下觉得自己的优点和不足是什么吗?

3、 你最近有看什么书吗?能够分享讲解一下吗?

4、 你找工作的话,一般怎么选择公司,看重什么?

5、 三面完了,从之前面试中你对部门有什么了解吗?然后讲了一下部门具体做什么的?

中间掺插着我的回答,又问的一些问题,还有一两个可能忘了,不过都是些自己实际情况问的问题。

后记:百度提前批 C++开发岗 搜索技术平台研发部 许愿能给个offer!!!

#面经##校招##百度##C++工程师#
全部评论
楼主有了
点赞 回复 分享
发布于 2020-08-11 09:51
啥部门啊
点赞 回复 分享
发布于 2020-08-11 13:19
挥手时服务端重启,端口还在,这个你是怎么回答的啊。没有说在哪一步的时候重启了么😑
点赞 回复 分享
发布于 2020-08-11 15:28
沾沾喜气
点赞 回复 分享
发布于 2020-08-11 22:39
那个只有返回值不同的话怎么实现重载呢
点赞 回复 分享
发布于 2020-08-12 09:05
加油唉!我是内容技术架构部,三面之后等了半个月了,还显示部门面试中。
点赞 回复 分享
发布于 2020-08-12 11:13
请问楼主,二面第一个算法是什么思路
点赞 回复 分享
发布于 2020-08-12 21:16
借楼许愿
点赞 回复 分享
发布于 2020-08-12 21:23
老哥,是免笔试的吗?
点赞 回复 分享
发布于 2020-08-13 16:11
楼主有消息了吗?我也是三面结束一直没消息
点赞 回复 分享
发布于 2020-08-25 15:41

相关推荐

头像
10-04 16:00
门头沟学院 Java
yrfgvrv:客户端真的别来,我实习没转正,经验少出去社招基本没有找不到,转投前端一下子就找到了
点赞 评论 收藏
分享
6 51 评论
分享
牛客网
牛客企业服务