我在没有任何推荐的情况下在职业页面上申请。有3轮。第一轮是在线编码挑战赛,然后是 2 场通过 Zoom Call 进行的在线虚拟采访,我们必须展示我们的屏幕,我们必须在记事本或任何文本编辑器中进行编码。
编码回合(1 小时 45 分钟):
- 第 1 部分:能力部分,有 10 个问题需要在 20 分钟内解决。题型难度适中。
- 第 2 部分: 7 调试问题和解决时间为 20 分钟。可以选择任何一种编程语言进行调试,该部分非常简单,并且对编程有基本的了解,可以轻松调试问题。
- 第 3 部分:这是编码问题,有 3 个编程问题,程序的难度级别为中到难级别。解决 3 道题的时间为 45 分钟
我能够解决所有 3 个编码问题和大约 7-9 个能力(我认为是正确的)和 5 个调试问题。个别部分有截断。
缩放技术面试(60-70 分钟):面试从对 OOPS 的基本理解开始,以及一些与之相关的术语,例如,什么是 OOPS,它是一个支柱?我举了一些例子来回答他。他对我的回答很满意,然后他让我分享我的屏幕。
- 在二叉树中找到叶子到根路径的最大总和我讨论了蛮力方法,然后他让我优化它。我终于设法做到了它的线性时间复杂度。
- 二叉树中没有两个相邻的节点的最大总和我以前做过这个问题并且可以回忆该方法,所以我直接使用优化的解决方案。
然后他问了我散列的基本原理和一些与它相关的理论问题,如线性探测、二次探测、碰撞。然后他问了我一个问题,
- 给定一个 8*8 矩阵,起始位置为 2,3,例如,您可以在矩阵中的任何位置移动(从 2,3 开始,您可以在矩阵中的任何位置移动 5,2 或 8,3),这样您就可以仅访问一个单元格一次,并且必须一次访问所有单元格。所以每次运行代码时,顺序应该是随机的,您必须打印该顺序。
我从蛮力方法开始,在最坏的情况下会导致无限循环。之后,我将其优化为 O(N2) 溶胶。他对我的解决方案很满意。然后他问我有没有什么问题要问他,我问你在加入实习生之前对我们有什么期望。
人力资源 + Zoom 技术面试(60 分钟):他首先提出了关于我的问题。
- 说说你自己
- 你对计算机科学的动机是什么?
- 是什么促使你来到这里?
- 您的项目的简要概述
- 为什么是摩根士丹利?
- 如果没有被选中怎么办?
然后他问了我 1 个类似于烂橙子问题的编码问题“腐烂所有橙子所需的最短时间”。
然后他问我是否有任何问题要问他,我问他关于摩根士丹利的工作与生活平衡以及我们可以分配给我的项目。
结果:已选择,在第二轮面试后 3 周后宣布。