📜  Synopsys 面试经历 |第 4 套(研发工程师 I 用)

📅  最后修改于: 2022-05-13 01:58:27.590000             🧑  作者: Mango

Synopsys 面试经历 |第 4 套(研发工程师 I 用)

最近,我接受了 Synopsys(R&D Engineer I)的面试。有两个电话回合,然后是 5 个 F2F 回合。

第一轮(手机屏幕):
1 .递归地反转一个链表。
2. 求二叉树的高度。
2. 将二叉树 7 写入文件。从文件中读取二叉树。

第二轮(手机屏幕):
1.不使用printf打印一个数字。相同的递归解决方案。
2. 给定一个 N 值,如果我们想用最少数量的硬币找 N 美分,并且我们有无限供应 S = { S1, S2, .. , Sm} 有值的硬币,那将是什么最小值?
3.什么是表达式树。如何将表达式存储在表达式树中。编写代码来评估表达式树。

第三轮(F2F):
1. 检查二叉树是否为 BST。
2. 给定一个包含 0 和 1 的二维数组,其中每行中的所有 0 在所有 1 之前。找到最大数量为 1s 的行。
找到最优解。推导出时间复杂度。

第四轮(F2F):
1. 引用和指针的概念。
2. 虚函数概念。
3. 给定一个棋盘和棋盘中的一个整数位置,找出马的下一个可能走法。
4. 设计一个 5 位计数器。
5. 给定一个 BST,找到第 k 个最大的元素。
6. 给定一个未排序的数组,创建一个 BST。

第五轮(F2F):
1. 为什么要转行?
2. 将链接列表复制到新位置。
3.虚指针和虚函数的概念。
4. 它是如何实现运行时多态性的?
5.给出编译时多态的例子。
6. BST和二叉树的LCA。
7. 给定一个包含 0 和 1 的数组,以最有效的方式对其进行排序。
8. 关于模板的问题。

第六轮(F2F):
1、关于目前公司项目的问题。
2. 学院项目详情。
3. 为图的 BFS 编写代码。
4.递归写。
5. 推导时间复杂度。

第七轮(F2F):
1. 给定一个排序好的数组和一个总和。检查数组中任意两个元素的和是否等于给定的和。
2. 堆栈和队列在计算机科学应用中的使用。
3.详细讨论函数调用时的堆栈管理。
4. 给定一个字符串,计算以 a 开头并以 b 结尾的子字符串的数量。
5. 详细讨论虚函数概念。
6. 给定两个可以表示为 32 位数字的整数以及一个开始索引和一个结束索引,将一个整数的位复制到给定开始和结束索引内的另一个整数。
7. 设计一个堆栈,以便我们可以在任何时间点获得 o(1) 中的最大元素。

Synopsys 的所有练习题!