CVTE 第二轮面试回顾:八股文 + 项目深挖 + 算法手撕

在经历了第一轮面试后,我进入了 CVTE 的第二轮面试。相比初面,这一轮更加全面:不仅继续考察基础八股文,还深入追问了我的项目细节,同时让我现场手写了两个基础算法题目。整体感觉这一轮面试更像是“综合能力检测”,既要扎实的基础,也要有动手解决问题的能力。

C/C++ 基础

  • 指针和引用的区别?
  • 虚函数表的实现机制?
  • malloc/free 与 new/delete 的区别?
  • const 和 volatile 的用法?

计算机网络

  • TCP 三次握手和四次挥手过程?
  • TIME_WAIT 状态为什么要存在?
  • TCP 和 UDP 的区别?
  • 你在项目中是怎么用 socket 的?

嵌入式相关

  • 中断的处理流程?
  • RTOS 下任务调度的方式?
  • STM32 外设驱动开发中 DMA 的应用场景?

面试官有时候会顺着我的回答继续深挖,比如我提到过 DMA,他就问我 DMA 的优缺点,以及在项目中是否遇到过 DMA 和 Cache 一致性问题。

二、项目深挖

在项目部分,面试官并不是让我简单复述,而是不断追问细节:

  • 为什么要用这种架构? 有没有考虑过别的方案?
  • 遇到过哪些 Bug? 你是怎么定位和解决的?
  • 性能优化:有没有做过数据传输效率的优化?
  • 团队协作:你在项目中主要负责哪一部分?和硬件同事、算法同事是怎么对接的?

举个例子,我提到在一个项目中用过 双缓冲 DMA 传输,面试官立刻问我为什么要这么做,以及如何保证数据不会丢失。幸好之前自己踩过坑,能结合实际经历回答。

三、手撕算法题

这一轮有两个算法题,难度都不算太高,更像是验证我能不能把基础知识落到代码上:

  1. 字符串反转输入 "hello world"输出 "dlrow olleh"考察点:指针操作、边界处理。
  2. 链表去重(未排序单链表,去掉重复结点)输入:1 -> 2 -> 3 -> 2 -> 1 -> 4输出:1 -> 2 -> 3 -> 4要求:在 O(n) 时间复杂度和 O(n) 空间复杂度下完成。

第一个题目比较简单,几分钟就写完了;第二个题目稍微有点思考,因为需要用哈希表辅助去重,但好在最后也顺利写出来并跑通。

四、总结与反思

CVTE 第二轮面试整体感受:

  • 八股文问得很细,不仅是死记硬背,更希望你能结合实际场景去解释。
  • 项目部分是真正的“深挖”,能看出面试官想考察你是否真的做过,而不是纸上谈兵。
  • 算法题偏基础,但写代码的逻辑性、完整性(边界条件、内存释放等)都很重要。

反思下来,我觉得这一轮自己表现还算稳定,但在八股文上个别地方回答得不够深入,比如操作系统调度策略我只说了抢占式和非抢占式,没有展开到具体的调度算法(如时间片轮转、多级反馈队列),这一点有待加强。

答案都在专栏了:https://www.nowcoder.com/creation/manager/columnDetail/mPZ4kk

全部评论

相关推荐

评论
点赞
6
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务