我参加的是深圳站研发工程师。笔试题目还好,基本上都是剑指OFFER的题目,我面试时候还瞅了一眼,80多,以为有戏了,谁知最后还是悲剧了,说出来给大家作为经验教训。
一面问题:
C++有哪些数据类型:char, int, float, double这些;但是面试官还问为什么long 和int都是4字节(不会答) 他解析以前还没出现int的时候long的出现是为了区别char。
JAVA和C++区别是什么,分别用在什么情景比较好?
编程题1:给定一个文件每一行是字符串,找出所有的逆序对,比如abc和cba是逆序的对。我用了一个暴力解法,面试官微笑,然后给我讲解了高效的方法,但我当时太紧张了,不记得了。
编程题2:给定一个数字n,比如n=3,生成1到n平方的数,如1到9,填入九宫格,使得横竖斜都相等。我当时就蒙了,说好的写快排呢?说好的堆排呢?说好的归并排呢?为什么别人都写排序,我写这些?
总得来说,编程题做得不好。但是面试官还是给我过了,不知道是不是1面成绩差导致后面的总分低。
二面问题(问得范围很广,什么都问,足有1.5小时,我后面都思维混乱,状态低迷):自我感觉C++基础回答还行,但是越到后面,思维越混乱,回答越差,特别是大数据问题,逻辑问题和编程题,没办法。
先是陈述一番自己做的项目。针对项目提问。
然后问基础:
TCP三次握手;
重载,覆盖和隐藏的区别;
快速排序(没要求写)
C和C++有什么区别,能用C实现C++的所有功能吗?我回答的是C++具有封装继承和多态,他又问:C能实现多态吗?不会了。
给定一个结构体,里面有char, int , double,求sizeof.这个考虑数据对齐就可以了。
给定一个类,有静态成员,const成员,引用成员,问什么时候初始化。答:静态成员在类外部定义,const成员和引用成员在构造函数初始化列表初始化。
给定一个类,有char,int,double,还有函数,求sizeof。回答:其实函数不是保存在类的,sizof数据成员即可。
C++的内存分配(堆,栈,全局区,文字常量区,代码区)
C++new和malloc区别, 使用new一定要delete吗?
(还有一些实在想不起了)
大数据题:(此时已经过了50分钟了)
求出前100个大的数。我回答用堆或者快排做,但是面试官说还有更加高效的方法,想不出了,跪了。
2.5亿个数据,求出不重复的数;当时说用bitmap。其实应该用2-bitmap
还有几个,实在想不起,但是类似于July博客的大数据题,出了两三道,我当时还混乱了,开始回答不出了。
逻辑题:25匹马,5条赛道,一匹马一个赛道,求决胜1,2,3名至少多少场。
实现string类(构造函数,复制构造,析构):当时头脑混乱,复制构造写成了赋值,唉。
最后面试官和我握手,让我回去等消息我就知道没戏了,自我总结就是编程题做得不好。
满意的地方:
百度的面试官都很nice, 有些还说鼓励和赞扬的话。
不满意的地方:
没什么不满意。