📜  软件工程师的Cadence面试经验

📅  最后修改于: 2021-11-17 10:14:14             🧑  作者: Mango

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 分钟)。之后他问了三个问题:

  1. C++中的虚函数和虚表概念,以及多态
  2. 给定一个无限的整数流,每次打印流中最多三个整数以及它们在流中的位置。
  3. 函数( 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问了一些行为问题
  • 关于公司及其机会的一般性讨论。

判决:接受 – 得到要约