百度C++开发工程师一面面经

摘要:

时间:8月20日晚上八点

时长:90min

  • 问:做下自我介绍

    简单说了下自己来自哪里,做过什么,和面试官有说有笑,比较轻松

  • 问:对未来有什么规划,想做什么方向?

    blablabla…

  • 问:讲一下你在腾讯做的项目

    blablabla…

  • 问:看到你做了一个工资管理系统,里面有涉及到锁吗?

    没有(就是这么直接)

  • 问:讲一下如果两个人同时对数据库进行操作,该如何避免冲突?

    描述了一下三级封锁协议

  • 问:如果A事务先查看了x的值,在A还没结束的时候,B修改了x的值,这之后A再次读取x的值,请问,在没有封锁协议的情况下,A两次读到的值相同吗?

    回答的是因为没有封锁协议的保护,所以两次读的值不同(我感觉这个我答错了

  • 问:数据库索引了解吗?不同的索引涉及到了哪些不同的数据结构?

    这个没复习到,含含糊糊说有哈希,有红黑树,这题要凉

  • 了解哪些数据库的引擎?

    这个方面没有了解过(==)

  • 问:讲一下数据库优化?

    讲了下优化树以及优化树的优化规则,讲了下做连接操作时可以将占用内存较小的表作为外表来提高速度。

  • 问:描述下网络请求一个数据的全过程?

    讲的比较详细,讲到了DHCP, DNS, TCP, 路由选择协议,这题应该比较稳

  • 问:了解哪些网络请求的安全保护措施?

    回答了https,这个我真不懂

  • 说下https的握手过程?

    听成了tcp的握手过程,讲到一半被打断,尴尬。

  • 了解cookies和session吗?

    只了解cookies,然后把cookies的原理讲了一遍

  • 最后做道题吧,输入是一个单链表,类似于1->2->3->4->5->6,你要写一个方法,返回1->6->2->5->3->4

    先讲了下思路,说是可以用暴力解法,把123456先保存到数组里面,然后一前一后两个指针往中间移就完事了。结果面试官补充说要求空间复杂度是O(1)。

    后来想了蛮久,没啥思路,面试官给提示了一下,先切分成两条链,然后第二条链翻转,最后两条链合并。

    恍然大悟。

    闷头开始写,结果在翻转链表的部分卡住了,最后没有写完,面试官让讲了讲思路。

  • 问:你有什么想问我们的吗?

    问了下部门和岗位的情况,问了下打卡严不严,加不加班。