📜  Adobe 计算机科学家面试经历

📅  最后修改于: 2021-11-24 02:43:13             🧑  作者: Mango

第1轮:

1. 打印二叉树中给定节点的祖先。 [https://www.geeksforgeeks.org/print-ancestors-of-a-given-node-in-binary-tree/]

2. 找出两个链表的交集。 [https://www.geeksforgeeks.org/write-a-function-to-get-the-intersection-point-of-two-linked-lists/]

3. 关于工厂设计模式的问题。

4. C++ 中的智能指针。 [https://www.geeksforgeeks.org/smart-pointers-cpp/]

5. 考虑一个在 10 个不同位置具有 return 语句的函数。假设这个函数修改了一些全局变量来实现它的功能。现在每次从这个函数返回之前,你都需要重置全局变量。你会如何以更好的方式做到这一点? 【代码重复少】

第二轮:

1. 二维数组的可视化。二维数组的动态分配和解除分配。

2. 无递归的预序遍历。 [https://www.geeksforgeeks.org/iterative-preorder-traversal/]

3. 反转链表。 [https://www.geeksforgeeks.org/reverse-a-linked-list/]

4. C++中的virtual和override关键字。

第三轮:(招聘经理轮)

1. 考虑一个两个用户可以聊天的聊天框。设计一个线程安全的聊天框,以便一次只有一个用户可以向聊天框添加评论。要求使用互斥锁、条件变量等在 C++ 中实现低级设计。

2. 我在 Photoshop 团队面试时,关于 LRU 缓存、图像缩放和图像翻译概念的一些一般问题。

第四轮:(导演轮)

1、公司现有项目讨论。

2、目前公司最大的成就。

3. 你为什么离开你现在的组织?

4. 你如何跟上新技术/概念?

5. 多线程问题,Singleton、Observer等设计模式。