投递岗位
C++开发工程师(第一志愿)
嵌入式开发工程师(第二志愿)
时间线
24.08.12 简历投递
24.08.12 收到测评链接
24.08.13 完成测评
24.08.15 收到笔试通知
24.08.18 收到笔试链接但放弃(当时几乎完全没准备,每个人有两次笔试机会,择一参加)
24.08.30 参加笔试
笔试内容
形式:线上
平台:牛客网
题型:25选择+3编程
考试时长:2h
选择题
题型分布:
- 必做题(12道)
- 数据结构与算法(6道)
- 二叉树的最小高度
- 无序树的孩子兄弟表示法
- 完全二叉树
- 给定数组采用冒泡排序的最小次数(读程题)
- 汉诺塔问题程序填空
- 查找单链表倒数第k个结点的最快方式的时间复杂度(可参考:删除链表的倒数第N个结点)
- 操作系统(3道)
- 单道方式处理机面对任务的平均周转时间
- 降低缺页中断率的方式
- 计算机经分配和释放内存后空闲分区的大小
- 计算机网络(3道)
- 不通过基站实现两部主机间无线通信的方式
- TCP三次握手
- 数据链路层差错检测
- 数据结构与算法(6道)
- 选做题(区分Java、Python、C++、go方向,每个方向13道选择题,选择其中一个方向作答其中的题即可)
- C++(7道)
- 数据库(3道)
- Linux(3道)
- Linux复制命令
- Linux主要文件目录的功能(题目考查的是/proc目录)
- sftp与ftp
为什么C++和数据库的题没有列出来?因为最后死磕编程题忘记后面还有选做题了!!!三道Linux题目是在最后用仅剩的40秒做的……
编程题
有n份资源,仅有上锁和未上锁两种状态,初始均处于未上锁状态。每次指定一个编号p(1≤p≤n),改变对应资源的状态。每次完成操作后,要求分别输出区间[1,x]和[y,n]内未上锁的资源数量(1≤x,y≤n)。
长度为n的序列(从1开始计数),其每个元素的值等于其所在下标的值。执行q次操作,每次输入l和r(1≤l≤r≤n),将位于区间[l,r]内的元素置于序列尾部(位于r之后的元素前移)。要求经过q次操作后,输出序列中每个数字出现过的下标的个数。
对于一个仅由0和1构成的串,其得分定义为其每段连续的1的长度的平方和。给定一个01串,可以执行k次操作,每次可以将串中的一个0变为1,要求输出经k次操作后,串的最大得分。