Adobe 采访 |第 7 组(MTS-1 校内)
首先,我要衷心感谢整个 GeeksforGeeks 团队创建和维护这样一个很棒的网站。 GeeksforGeeks 极大地帮助了我准备校园面试并最终完成了 Adobe 的工作面试。
面试类型:MTS 1 校内
轮数:1 apti + 1 书面 + 4 PI
能力回合:1小时
LR 有 15 个问题,DI 有 30 个问题。这些问题类似于 CAT 等管理考试中提出的问题。
结果在几个小时后公布,大约 50 多名学生被选中参加笔试。
笔试:2小时
它分为两个部分:
第 1 部分包含 10 个问题,其中包括几个关于操作系统的问题,其余的是常见的编程问题。
第 2 节有 10 个关于 C/C++ 的句法问题。我想他们中的大多数都可以在 GeeksQuiz 上找到。
15 名学生通过了笔试,将在第二天参加 PI。
PI回合-
第一轮:45分钟
1. 对各种数据结构进行了一般性讨论。 BST和hashmap的比较(相对优缺点)。各应用。
2. 使用 2 个堆栈实现一个队列。然后优化实现。
3. 假设我们有两个函数 void g() 和 void h()。函数h() 已在 g() 主体的某处调用。现在使用调试器,我们发现一旦 h() 中的 return 语句(在函数h() 的末尾)执行,程序就会崩溃。该程序在语法上没有任何错误。你将如何调试代码???
我的回答:函数h() 修改了堆栈上的返回地址。
4. 最后一个问题是一个谜。你有 7 个硬币,其中一个是假的。以最小的权重找到假硬币。
第二轮:45分钟
1. 本轮开始时对各种操作系统概念进行了严格的讨论,特别是虚拟内存和需求分页。
2. 使用 2 个队列实现一个堆栈。现在优化实现。
3.机器人可以走1步或2步。找出他可以到达第 n 步的方法数。
我从简单的递归解决方案开始。他让我画出整个递归树,然后手动找到 n=8 的答案。我让他让它 n=5 😀 我指出了重叠的子问题并给了他 DP 解决方案。他还询问了这两种解决方案的时间和空间复杂性。
4. 这个问题与他所谓的图像条件运算符有关。我不知道那是什么。于是他给我解释了。
单色图像由 MxM 矩阵 Image0 表示。我们有另一个 WxW 矩阵 Op ( W<=M, W is odd )。创建一个新的 MxM 矩阵 Image1,使得当 Matrix Image0 的 pixel(i,j) 与 Matrix Op 的中心单元对齐时,每个像素 Image1(i,j) 是重叠像素的乘积的总和。起初我提出了一个简单的 O(N2xW2) 解决方案。他让我写完整的代码。如果坐标有效,则使用 getpixel函数返回像素值,无效坐标返回 0,通常在这种情况下会有所帮助。然后他告诉我矩阵 Op 中的所有值都是相等的。优化实施。我能够将其降低到 O(N2xW)。第三轮:45分钟
1. 斐波那契数列。只是递归关系并得出递归实现的时间复杂度。
2. 编写一个函数,接受 n 个参数并返回一个使用这些参数作为维度的 n 维数组。表达式 a[i1][i2]…[in] 应该用于一维数组,这很简单。对于维度为 mxn 的二维数组,首先创建一个由 m 个一级指针组成的数组,并为每个指针分配一个大小为 n 的数组。他让我为其中 k 是参数的 k 维数组做这件事。真正的问题是实现 k 个嵌套循环,其中 k 不是一个常数值。
我能够使用从 i=0 到 i=k^k – 1 运行的单个循环来实现它。对于每次迭代,我计算了各种嵌套循环变量,比如 par(L)=i mod k^(L+ 1) ,其中 L=0 表示最内层循环,par(0) 表示最内层循环变量。因此,当某个 t 的 par(t)=0 时,很明显 i=0 或直接的外循环,即循环 L=t+1 已经移动到下一次迭代。所以必须执行循环 L=t+1 和 L=t 之间的 malloc 语句。
面试官对这种方法印象深刻。