📜  Adobe 面试经验(2 年经验)

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

Adobe 面试经验(2 年经验)

我为 MTS profile 采访了 adobe。一共进行了4轮

第一轮:在线编码轮

包括能力、基于输出的问题和 2 个编码问题。一种是基于简单的哈希图,另一种是基于后缀树。

第 2 轮:F2F 面试

面试官问我项目。我告诉他我没有深入的 c++ 知识,因为我只在 android 上工作过,但他仍然问我问题。面试官非常乐于助人,而且很酷,但他对我的回答笑了很多,这极大地影响了我的士气。

1)

int a = 10;
void * b = &a;
printf("%d", *b);

回答:你不能在没有类型转换的情况下打印 void 指针。可悲的是我不知道。

2.函数在内存中存储在哪里?如何在运行时解析参数。

回答:阅读有关符号表的信息。

3. 结构和联合。他们之间的区别。它们是如何存储在内存中的。然后谈话转到小端/大端。

4.虚拟继承,多重继承中的菱形问题。

5. 如何在 C 中做类 final

https://www.geeksforgeeks.org/simulating-final-class-in-c/

6. 假设你有一个根目录结构,里面有子文件夹和文件。打印结构中的所有文件。
我给出了正常的递归 DFS 解决方案。他问我可能出现的问题。我告诉他如果文件结构太大,可能会发生 StackOverflow。他给了我提示,最大文件路径在 Windows 中是有限的。我从中得到了提示,并设计了使用单栈进行遍历的解决方案。

他进一步问我可以在这个结构的每个节点中存储一些数据。我将如何训练我的算法以根据过去的失败和成功做出明智的决定。我建议也许可以以某种方式使用文件夹下的文件和子文件夹的数量。他不满意。我什么都想不出来。在这之后他放弃了这个问题。

7.
void fun(int x)
void fun(int x, int y=10)
fun(5);
哪个函数会被调用?
https://www.geeksforgeeks.org/default-arguments-c/

8. 问我关于 vTables 和 vPtr 的问题。

第三轮(管理轮):

介绍,他问我项目。

1-解释进程间通信

https://www.geeksforgeeks.org/inter-process-communication/

2-解释如何在线程中实现同步。

读取互斥量和信号量。我也用底层实现解释了一切。他印象深刻。

3-生成树的镜像。

https://www.geeksforgeeks.org/write-an-efficient-c-function-to-convert-a-tree-into-its-mirror-tree/

4- 实现字典

我使用 Trie 数据结构来实现它。我准备好了三元搜索树,但他没有进一步询问。

5-解释客户端的进程如何与服务器的进程交互。

我以我在大学实施的 Web 项目为例,向他解释了 REST API 如何与 GET/POST 方法一起使用来发送数据以及如何在服务器端接收和处理数据。

面试官非常友好,他一直在激励我。一旦我开始解释,他就一直在听,没有交叉问题。这让我信心大增。

第4轮(DS轮):

再次面试官非常友好。

1-解释贪婪和动态编程算法范式之间的区别。

我用两种算法的一种算法向他解释了范式。 DP 的 Fibonacci 和 Greedy 的 Splitwise 算法。

2-将树转换为双向链表。

我说我有各种解决方案,他回答说,“从最低的一个开始。你知道演习:p”。我们讨论了 2-3 个解决方案。在其中一个解决方案中,我使用了一个静态变量。

3-静态变量存储在哪里。程序中有什么生命周期。

4- 最大递增子序列。并用动态规划解释它。

https://www.geeksforgeeks.org/longest-increasing-subsequence-dp-3/

他没有进一步询问 nlogn 解决方案。但对于不了解 nlogn 解决方案的人。
https://www.geeksforgeeks.org/longest-monotonically-increasing-subsequence-size-n-log-n/

他在这个问题之后完成了,至少可以说这是很棒的一轮。

第五轮(导演轮):

我很紧张,他看到了。他让我放松一下,给我倒了一杯咖啡。他坚持让我拥有它。他问我大学时光,不是学习部分,而是乳腺部分。
然后他根据我的简历问我为什么要切换和其他问题。他问了我一个基于设计的问题。

假设我们正在旅行并且我们点击了很多照片。现在照片根据不同文件夹中的日期进行分类。如果我希望根据事件对它们进行分类怎么办。

我建议我们可以根据社交媒体数据、位置、背景图像处理等使用各种参数。然后他修改了问题并说我只会提供时间戳。我建议我们可以根据两张照片之间的频率(差距)进行分类。他让我从算法的角度思考这个问题并提出解决方案。他说如果我回答正确,他不会再问更多问题,并离开办公室,因为他与某人进行了一次小型会议。这一举动给我带来了巨大的压力,也许他只是在检查这一点。 5分钟后他回来了。我准备好了解决方案。我告诉他,根据时间戳,我将为每张照片分配一个 ID,这将在本质上严格增加,后续照片的 ID 之间的差距将基于它们的时间戳之间的差距,我还将提供一个滑块,这将有助于用户对照片进行分组,如果它在最左边,那么每张照片将被放置在不同的组中,如果它在最左边,则将包括所有照片。他似乎很满意。他进一步问我滑块的默认值是多少,关于这件事我们进行了长时间的讨论。我们讨论了利弊。他很满意,告诉我他已经完成了。

2天后接到HR的电话。

尖端:
1) Adobe 不想特别听到 GFG 的回答。他们肯定会询问您内部细节或替代解决方案来评估您的想法。做好准备。
2) 深入阅读操作系统和基本的 C++。
3)面试官非常友好,他们会通过给你提示来推动你解决问题。不要放弃并继续思考。还要不断分享你的想法,这非常重要。

感谢 geeksforgeeks 提供了很棒的平台。