📜  高盛实习面试经历|校外 2021

📅  最后修改于: 2021-11-23 07:44:04             🧑  作者: Mango

我是通过公司的职业门户申请的,申请于2021年1月20日开放,2021年2月8日截止。

我在申请截止日期的第二天收到了能力倾向测试的邀请。测试定于2月20日进行。

本次测试在Hackerrank平台上进行,分为6个部分,共66道题,总时长90分钟,有视频监考,允许更换部分。这些部分是-

  1. 数值计算 – 8 个问题
  2. 数值推理 -12 题
  3. 理解——10个问题
  4. 抽象推理——12个问题
  5. 图解推理——12个问题
  6. 逻辑推理——12 个问题

采用 +5 和 -2 的标记方案。

我解决了大约 48 个问题,并试图避免负面标记。

3 月 10 日,我收到一封邮件,说我已经通过了能力倾向测试,下一步是定于 2021 年 3 月 20 日进行的技术测试。

测试包含以下部分 –

  1. 编程 — 1 个简单的编码问题和 1 个中等编码问题。
  2. Quantitative Aptitude – 与数学概念相关的多项选择题。
  3. 计算机科学 – 与计算机科学概念相关的多项选择题。
  4. 高级编程——一个关于高级数据结构和算法的硬编程问题。
  5. 告诉我们你的自我——两个基于段落的行为主观问题。

编程部分:

  1. 第一个编程问题给出了一个由 n 个整数和一个数字 k 组成的数组。我们必须从数组中包含最大数量的总和小于 k 的元素并输出它们的总和。
  2. 第二个编程问题是基于以数组格式表示的二叉树的层序遍历。我们应该只完成给定的函数,但问题设置者在驱动程序代码中留下了一个错误,这是任何人在调试时检查的最后一件事,这使得调试代码的意外输出非常困难。

定量部分:

  1. 定量能力问题基于广泛的数学主题,包括但不限于三角学、概率、统计、排列和组合等。

计算机科学科:

  1. 计算机科学问题基于数据结构、排序算法、图算法、操作系统、调度算法、银行家算法、OOPS、 Java、预测程序的输出等。

高级编程部分:

  1. 高级编程问题是一个基于图表的 100 分问题。问题描述很模糊,我不得不假设很多才能找到解决方案。我不记得这个问题了,但基本上,我们应该找到具有最佳连接性的节点,即具有最多邻居并且其邻居再次具有良好连接性的节点。
  2. 测试是购买了网络摄像头和麦克风。允许在部分之间切换,但每个部分都有自己的时间限制。
  3. 3 月 31 日,我收到一封电子邮件,其中包含我已通过技术测试的信息,并将在 4 月 5 日至 9 日之间的某一天与小组进行虚拟面试。
  4. 4 月 2 日,我收到了面试的日期和时间。我的面试安排在 4 月 6 日,我应该从上午 10 点到下午 5 点有空。整个过程要在同一天进行,zoom 和hackerrank codepair 应该是平台。

2021 年 4 月 6 日

候诊室里大约有 50 名候选人,整个过程进展缓慢,不得不坐在笔记本电脑前等待很长时间,因为面试可以随时开始,而面试官已经在那里等候选人了。

面试轮次

第 1 轮– 下午 12:05 开始(是的,在空白屏幕前等待了 2 个小时!)。面试官是GS的副总裁,人很好,很有礼貌。她以问候开始,并要求我快速介绍。然后让我告诉她一些我在简历中提到的项目。然后她问了 DSA 问题。问题是——

  1. 打印给定数组中的所有对(无序),其总和为给定数字 k。
  2. 在媒体播放器中实现歌曲建议功能。基本上,有两种类型的查询,一种是在时间 t 播放一首歌曲,另一种是告诉到目前为止哪首歌是播放次数最多的歌曲。首先我告诉了她蛮力的解决方案(每次都计算所有歌曲的频率)。然后她让我用数据结构优化它。我告诉她两种解决方案,一种是堆,另一种是双向链表。她似乎对我的做法很满意。

最后,她告诉我如果我有什么问题要问她,我可以问。面试持续了大约45分钟。

第 2 轮– 经过 3 个小时的漫长等待,它在下午 4 点开始。面试官是一个很酷很聪明的人。他直接跳到 DSA 问题。他一共问了我 5 个问题,让我把它们全部编码。此外,他用他的测试用例检查了它们。问题是——

  1. 给定某家公司 n 天的股票价格,你必须通过买卖股票来最大化你的利润,这样你只能进行 1 次交易。
  2. 同样的问题,但现在您可以执行任意数量的交易。
  3. 再次相同,但现在我可以执行几乎 k 次转换。我同样使用动态编程。
  4. 给定一个数字 N,你应该使用递归打印 n,n-1,n-2….,1,0,1…..n-2,n-1,n 并且递归函数只能被调用一次.我在递归函数使用了另一个二元变量,它告诉我它是处于递增还是递减状态。该解决方案有效,但他似乎并不满意,并告诉我在面试结束后考虑 3 行解决方案,令人惊讶的是,该解决方案在面试结束后立即击中了我 XD。
  5. 给定一个数字数组,按照这些数字出现的频率降序打印其中的唯一数字。

我为他的所有问题编写了可接受的代码,他看起来很满意并问我是否有任何问题要问他。

第三轮– 下午 5:30 开始,是一个匆忙的面试。面试问的太快了。他直接从 DSA 问题开始。

  1. 给定一个整数数组,您必须找到任何峰值元素,其中峰值元素是一个数字,其前一个和下一个数字都小于给定数字。我给了他蛮力 O(N) 方法,然后他问我是否可以优化它。然后我给了他 O(logN) 的方法。
  2. 现在他要求做同样的问题,但要找到最大的峰值元素。他问是否有可能在 O(log N) 时间复杂度内做到这一点,以及如何(答案是否定的,在这种情况下 O(N) 解决方案应该是最佳的)。然后他问为什么会这样。
  3. 继续他的下一个问题,在不使用任何库函数的情况下,找到给定正数(完美平方或非完美平方,可以带小数或不带小数)的平方根。

我被迫为他的所有问题编写代码,并针对他的测试用例运行它们。

  • 之后,他问我关于我的项目,我使用的技术堆栈以及为什么?
  • 然后他让我将它们与其他可用的技术堆栈进行比较,最后是几个操作系统、OOPS 的简短问题。他似乎很满意。
  • 最后,他让我问他问题(如果有的话)。
  • 这次面试太匆忙了,包括上面所有的问题和他们的代码,面试甚至没有持续15分钟。
  • 这是我的最后一次面试,之后他们要求我和其他几个人离开,结果将在 2 周内通知那些被选中的人。

终于,在 4 月 16 日,我收到了关于我选择实习的电子邮件!

我的小贴士-

  1. 尝试在筛选测试中获得最高分(不仅仅是截止)。
  2. 尝试为技术回合中的基于段落的问题写出好的和有效的答案。
  3. 为“告诉我你自己”准备一个好的答案,突出你的强项,并将面试的其余部分转移到它上面。
  4. 尝试用REACTO的策略解决DSA问题,可以参考https://content.techgig.com/answering-a-technical-question-in-a-coding-interview-a-step-by-step-guide/ articleshow/81672857.cms
  5. 最后总是向面试官提问,这表明你对在公司工作的热情和兴趣。
  6. 面试过程可能会非常漫长而缓慢,请做好心理准备。