笔试
- 2021.9.14
- 19道单选(38分)
- 1道多选(2分)
- 3道编程(60分)
- 题1:100%
- 题2:84%
- 题3:0%
面试
- 2021.9.18(一二连面)
一面(约1h)
感觉主要摸清知识栈
- 项目(SSVEP、ClipMarker),技术栈
- 计算机网络
- 请求网站的过程,每一步的具体情况?
- HTTP,状态码,例如304、302…?
- IP会变化吗?一般不会,在IPV4情况下,用NAT技术时会变
- 数据库
- 项目用过没?没有
- C++
- 算法
- 1.两个栈实现一个队列(时间复杂度O(1))
- 想了好久,最后勉强写出来,讲了思路
- 2.讲快排思路,时间复杂度
- 评价 硬编码能力要加强
- 1.两个栈实现一个队列(时间复杂度O(1))
- 问:还有什么你会的,但我没有问到的地方……
- 反问
- 百度的部门是随便捞?毕竟只有一个C++研发投递入口。说现在面试不分业务,全算C++…
二面(约50min)
- 实习转正?转正还找其他的,对实习部门有什么不满意的地方?技术栈窄
- 脑-机接口方向,元宇宙可能实现吗?
- 监控一个函数的运行时间,下面有两种方法
- 1.在函数定义开始和结束的位置放时间戳
- 2.进入函数的作用域
- 往往使用中,两种方式得到的结果会有较大的区别,会是什么原因?(瞎打,说的不对;说不会,没有换问题的意思)
- 有两个原因:参数拷贝赋值的时间消耗、函数运行前内存清理的时间消耗
- 算法
- 找出一个数组的中位数
- 暴力:排序后,取中间位置
- 优化?使用堆,讲思路(奇偶具体细节没讲):用一个二分之一数组大小的最小堆, 遍历数组,当前元素与堆顶元素比较,若大于堆顶则删除堆顶元素并添加当前元素,若小于堆顶则继续遍历,最后最小堆堆顶元素就是中位数。
- code,为简单起见,可默认奇数长度的数组
- 写出来了,本题的关键是小顶堆(C++默认是大顶堆)
priority_queue<int> pq; // 默认大顶堆 priority_queue<int, vector<int>, less<int>> pq; // 大顶堆 priority_queue<int, vector<int>, greater<int>> pq; // 小顶堆
- 找出一个数组的中位数