Adobe面试体验(5轮)
在线回合(关于 Cocubes):-在这一回合中,有一个 MCQ 部分(包含有关能力和 CS 基础的问题)和一个编码部分(非常简单,只有 3 个基本级别的问题)。
第一轮技术:- ? (在诺伊达)
DS 问题:- 第一个问题是编写在合并链表中查找交点的代码,首先我给出了基于堆栈的方法,然后使用基于哈希表的方法进行了优化。
下一个问题是在给定的数组中找到给定总和的数字对,只询问方法,所以最初我给出了基于循环的方法,然后用散列优化它。就在这时,他让我找出总和为零的三胞胎。
然后第三个问题是找到可以排序的数组的最小长度部分以使整个数组排序,这有点棘手,但面试官提供了一些提示很有帮助。
CS基础知识:-
我在介绍中提到我精通Java ,所以他问了我一些基本问题,比如抽象类和接口之间的区别,以及什么是继承,它有什么用。还有一些关于操作系统的问题。
第二轮技术:-
他问我谷歌地图的工作原理,它背后的算法是什么,我将如何实现它,如果我需要找出附近的诊所,那么最好的方法是什么。然后他问我 BFS 和 DFS 之间的区别,哪个更适合上述功能。然后他问了我一个随机的问题,即 GPS 是否可以在没有互联网的情况下工作。然后我被要求编写随机数生成函数,它不会两次生成预生成的数字。然后是几个与我的项目有关的问题。
然后他问了操作系统问题,比如什么是抖动以及如何防止它,如果你有钱,你会买一个 500 GB 的内存,如果没有,为什么?(我的答案是不,因为在内存中搜索将成为一项昂贵的操作)然后是关于分页、TLB、虚拟内存、逻辑地址等的问题。
第三轮技术:-
首先他问了我的项目(这次是详细的),然后他给了我一个系统设计问题,设计一个有多个电梯的电梯管理系统并编写相同的类,他的主要重点是找到一个算法来分配电梯以最大程度地减少一个人花费的等待时间。首先,他让我找出所有边缘情况,例如 2 部电梯是否同样远
从一个请求楼层然后你将如何分配,所以经过激烈的讨论他让我写代码。
然后问了一些非技术性的问题,比如你在过去的教育中会改变什么以及为什么。
人力资源回合:-
这只是一个 10 分钟的回合。他问了关于大学安置的一般性问题,然后我是否已经有任何报价及其详细信息。然后我问他是否雇用新生在 Adobe 从事纯粹的研究工作,如果没有,那么程序是什么到那里。
尖端:-
确保你复习了你的 CS 基础知识(尤其是操作系统和你精通的语言)。即使您坐在面试大厅外,他们也会全天监视您,因此请注意这一点。没有正确回答所有问题是可以的,你可能会做错一些,但不要让你士气低落或失去动力,因为你需要精力充沛到最后。
祝一切顺利!!