Adobe 面试体验(校外)
我使用LinkedIn申请。
第一轮:技术
- 他让我先详细解释一下我的项目。
- 它从一个谜题开始。 https://practice.geeksforgeeks.org/problems/the-3-5-litre-die-hard-water-puzzle
- https://practice.geeksforgeeks.org/problems/kth-smallest-element5635/1
- 一种
https://practice.geeksforgeeks.org/problems/reverse-a-string/1 - 给定一组路径。找出所有这些路径中的最大公共路径。
- 例如。 /a/b/c 和 /a/c 是路径。然后,输出必须是/a。
- 期望处理所有极端情况并有效地解决问题(例如,如果在处理某些字符串后路径变为空并且类似的东西,则返回)。
- 给定一组路径。找出所有这些路径中的最大公共路径。
第 2 轮:技术
- 他让我先详细解释一下我的项目。
- 再次从一个谜题开始:https://www.geeksforgeeks.org/print-0-and-1-with-50-probability/
- 假设有一个新的数字系统,其中 5 不存在。将此数字系统中给出的数字转换为十进制数字系统。
- 例子。输入:6 输出:5 解释:新的十进制系统中不存在 5
- 我建议了一种类似于此的 DP 方法:https://www.geeksforgeeks.org/count-numbers-from-1-to-n-that-have-4-as-aa-digit/
- 但面试官希望得到更优化的答案。它可以使用基本符号来解决。方法将与此类似:https://practice.geeksforgeeks.org/problems/special-numbers4116/1
- 在不使用 sqrt函数的情况下找到给定数字的最接近的平方。
- 可以通过使用二进制搜索方法找到 sqrt 然后寻找 +1 和 -1 数字的平方来解决。
第三轮:技术
这更像是一种语言,它更多地关注特定于语言的细节。
对我来说,它是 C++。首先,他让我用 C 和 C++ 给自己打分。我在 C++ 中评分为 9,但在 C 中评分为 8。他问我原因,我说指针是我的噩梦。然后,他告诉我今天要问很多指针问题。 :p
提出的问题是:
- 定义函数指针
- 使用指针动态创建二维数组
- 很多讨论都围绕着虚函数
- 虚函数可以内联吗?答:没有。也给出理由。
- 使用模板的通用堆栈。创建一个类并编写所有函数。
- 关于进程和线程的一点讨论。
- 共享内存和消息传递。它是如何工作的?一个比另一个的优势。
- 镜像 BST。最初我交换了数据,但后来他要求我使用指针交换。
- 概率之谜
- 许多其他我不记得的问题😀
一天后,我接到 HR 的电话,说还有一轮,叫做主管轮。
第四轮:技术(总监轮)
简要介绍我在公司所做的工作以及我在其中的角色。
- WAP 将十进制数转换为二进制数 https://practice.geeksforgeeks.org/problems/decimal-to-binary-1587115620/1。在此之后,他让我审查我的代码并考虑优化、极端情况(如果有)以及如果您正在审查此代码,您将给出什么评论。最后,我使用了一些位操作来让事情变得更快。就像代替 n/2,n>>1 和类似的东西。
- 他问我最喜欢的科目。我说操作系统。讨论围绕共享库、静态库、虚拟内存、分页、复制共享、消息传递等操作系统概念进行。
- 最后,他要求我提供一种方法来以有效的方式比较两个具有 10^9 行的文件并返回两者中共有的行。讨论持续了大约 40 到 45 分钟。这是我进行过的最好的讨论之一。
- 讨论的方法主要是散列和排序。
- 约束:单处理器机器
结论:选择😀
几天后,我接到了人力资源部的电话,告诉我同样的情况。
尖端:
- 我认为面试官并不是每次都在寻找完美的答案。他们正在寻找方法和思考过程。
- 自信并清楚地解释事情。
- 对你不知道的事情说不。
- 一切顺利。