Cadence 设计系统,班加罗尔 |软件工程师 I (C/C++) | 2021年
职位:软件工程师
经验: 6个月。
地点:班加罗尔
面试流程:
- 招聘人员致电安排面试。
- 技术面试。
- 人力资源讨论
技术回合处理如下:
第一轮(在线):面试官来自班加罗尔,这一轮进行了大约1小时。
- 二叉树的高度。[https://www.geeksforgeeks.org/write-ac-program-to-find-the-maximum-depth-or-height-of-a-tree/]
- 确定二叉树是否高度平衡(需要 O(n) 实现)。[https://www.geeksforgeeks.org/how-to-determine-if-a-binary-tree-is-balanced/]
- 最小硬币变化 DP 问题。[https://www.geeksforgeeks.org/find-minimum-number-of-coins-that-make-a-change/]
- 在 C++ 中编写类、整数指针、构造函数、析构函数、复制构造函数、赋值运算符。
第二轮(在线):面试官来自加利福尼亚州山景城。持续时间 1 小时。关于简历、项目、实习和以往经历的激烈辩论(20 分钟)。之后他问了三个问题:
- C++中的虚函数和虚表概念,以及多态
- 给定一个无限的整数流,每次打印流中最多三个整数以及它们在流中的位置。
- 函数( T &&x ) 这个 && 在这里代表什么? [注意:它不是逻辑与运算符]
第 3 轮(在线):有很多关于简历、项目、实习、过去的经验和学术课程的讨论(30 分钟)
- 反转链表的顺序。[https://www.geeksforgeeks.org/reverse-a-linked-list/]
- 以相反的顺序打印树的叶节点。 (提示:反向中序遍历很有用。)[https://www.geeksforgeeks.org/reverse-level-order-traversal/]
- C++ 中的多线程。[https://www.geeksforgeeks.org/multithreading-in-cpp/]
- 操作系统同步概念(互斥锁)。[https://www.geeksforgeeks.org/introduction-of-process-synchronization/]
第 4 轮(在线):面试官来自加利福尼亚州圣何塞。持续时间:1 小时。
- 引用计数、智能指针和垃圾收集(在 C++ 和Java)以及 Java GC 算法的内部工作原理)
- 在单向链表中,开头添加/删除,末尾添加/删除。
- 对于每个函数,尝试 O(1)。节点结构不能改变。 [提示。使它成为一个循环的链表]
HR 讨论: 2 轮(每轮 10-15 分钟)
- HR问了一些行为问题
- 关于公司及其机会的一般性讨论。
判决:接受 – 得到要约