第 1 轮:Hackerrank 在线测试
大约 350 名申请人的简历入围,151 名学生获准进入第一轮。
共有三个部分。
Section1 : Quant(15 题,20 分钟) 大部分学生都难以解决的问题。我在本节中只解决了 1 个问题。
Section2 : Computer Science Aptitude(15 题,15 分钟) 由许多 C、C++ 输出题组成。来自 OOP、OS 和一般 CS 的问题也在那里。我能够尝试 8-9 个问题。
第 3 部分:两个编程问题(45 分钟)。
一季度。油箱加满的船可以覆盖d 个停靠点。有 n 个停靠点,并在一个数组中给出哪些停靠点有加油站。船可以在这些停靠点停下来重新装满油箱。您必须尽量减少从第 1 站出发并到达第 n 站的停靠站数。我能够提交这个问题,通过了所有的测试用例。
Q2。给出一棵倒立的苹果树,每个节点有两个分支。基本上是一个二叉树。一个苹果可以是正常的,也可以是几乎水分过多或几乎水分不足的。对水分过多和水分不足的苹果进行处罚。你只需要给树中的一个节点浇水,这样整个树的过度水化和水化不足的惩罚之和就会最小化。树的输入以父数组的形式给出,另一个数组将每个苹果节点的状态表示为 0(中性)、-1(水分不足)和 1(水分过多)。我的朴素递归代码(没有构建树)只能通过 15 个测试用例中的 5 个。
共有16名候选人入围下一轮。
第 2 轮:技术面试 1(2 对 1)
他们讨论了我的简历并开始选择我在项目中提到的 Hibernate 和 Angular2 等技术。我坦率地告诉他们,我不是很自信,所以他们只问了一些基本的问题。由于我的简历中有关于 Android、Jersey/Hibernate 的项目,我的技能集也反映了强大的Java背景,所以面试继续关于 Core Java 。详细讨论了Java 的各种概念。这持续了大约 20-25 分钟。然后他们问了我对 JS 的熟练程度,我也说我没有信心,但还是问了 2-3 个基本问题。最后一个 DS 问题——二叉树的层序遍历。由于这是一个简单的问题,我尝试提出问题以获取具体信息,例如不同行中是否需要级别等。我希望在纸上编写完整的代码,然后对其进行解释。
最后,当有机会时,我询问了 Arcesium 机器学习的范围。始终尝试向小组提出一些明智的问题。
由于多次实习经历和自由职业,我的面试只围绕着我的简历展开,而其他学生则主要来自 DSA。该小组非常友好,他们俩似乎都印象深刻。沟通技巧也起到了至关重要的作用。
第 3 轮:技术面试 2(1 对 1)
来自 DSA 的 3-4 个问题。
一种。给定一个 DAG 和两个节点 A 和 B,打印从 A 到 B 具有 k 条边的所有路径。
最初的问题是只打印一个路径,后来扩展到上面提到的。期待完整的代码,面试官验证了算法的每个部分,并与我讨论了同样的问题。
湾O(1) 中堆栈上的最小元素
建议使用辅助向量并保持变量min的解决方案。他让我不用载体。我告诉他我在某处学习过的一种数学方法,但记不清了。他让我试着想想其他事情并给出同样的推理。我想不出任何其他解决方案。然后他要求删除min变量。通过推理,我告诉他,如果不维护变量min ,就不可能在 O(1) 中做到这一点。
C。从数组中获取至少比数组本身大 2 个元素的元素。
通过获得第二大元素非常简单。
面试官然后开始从 C++ 提问。主要是面向对象编程的概念、多态等。关于为什么需要静态函数的讨论,我解释了大约 10 分钟,但他似乎并不满意。
令我惊讶的是,我被选中参加最后的人力资源回合。你应该对面试官足够自信和聪明。即使面试官似乎对你的回答不满意,也不要惊慌。他/她的反应也是为了在不同情况下测试你。
第 4 轮:人力资源(1 对 1)
一位年轻女士接过了 HR。这一轮很快就面试过程、过去的面试、我的项目、哪个项目最有趣等进行了坦率的讨论。
经过 3 个小时的等待(我去了旅馆睡觉),公关打电话给我,我们会见了整个小组。我和另一个人一起被选中。这真的是一种“在云 9 上”的感觉。