这几天一直在忙着看面经和做编程题,总体来说有一种临阵磨枪的感觉,但是最后还是不太灵光,百度的面试感觉总体来说更偏细节和底层一点,往往是从一个知识点出发不断深入,很考验基础能力。
一面:
1.自我介绍
2.二叉树和哈希表的时间复杂度以及空间复杂度
3.为什么项目中不用其他的数据结构
4.c++11特性包括那些
5.讲一下智能指针,每种指针的具体作用
6.智能指针有什么缺点
7.多态是什么
8.什么时候调用拷贝构造函数
9.设计模式有哪些
10.怎么实现多线程的单例模式
11.怎么在自己的项目中实现多线程
12.有哪些锁
13.同步和互斥怎么实现的
14.编程题:N个数组中的前k个数,要求时间复杂度O(klogk),空间复杂度O(klogk)。
二面:
1. 自我介绍
2.解释type of int*(*pfunc)(*void,*void)
3. strlen和size of
4.std::vector的内存管理是什么,怎么手动实现释放内存
5.编程题:替换字符,不考虑内存
6反问
二面只有30分钟,如果编程题在10几分钟没实现的话就没有机会了,面试官人很好还问到中午有没有吃饭,知道已经没戏了,就问了一下如何继续提高,面试官推荐了effective C++的书,说如果希望做后台开发的话应该注重底层的细节,还可以实际做一个项目来熟悉各方面的内容,并且做编程题之前最好要多与面试官沟通,说明自己的想法,我就是直接闷头就做,也没能表现出自己的能力。
整体感觉收获很多,从电子到计算机有好多基础知识需要补,并且编程也不太扎实,必须要保证编程速度,后续可能要调整一下自己的心态,重新制定一下计划,继续努力啊!😁
全部评论
(10) 回帖