我采访了高盛的技术分析师职位。一家招聘机构联系了我。这个过程很长,你也可以在这个过程中继续准备。
第 1 轮 – Hackerrank 编码测试
有两个问题需要在两个小时内解决。我两个都做了。
1. 简单的问题。
给定一个范围的数字 [x, y] 和一个整数 q。将范围内的所有数字乘以 q 并返回与所获得的相应乘积不相同数字的所有数字的计数。
Ex- 如果 x=10,y=12,q=2。那么10、11、12对应的乘积是20、22、24。
计数将为 1,因为只有 22 的所有数字都与 11 不同。
2. 0/1 背包问题。另外一个补充是,您必须说明为最佳解决方案选择了所有项目。https://www.geeksforgeeks.org/printing-items-01-knapsack/
第 2 轮 – Coderpad 1
这是一个 1 小时的电话采访,共享一个屏幕以编写完整的工作代码。您需要编写一些测试用例并清除他们提供的测试用例。这里面问了两个问题:
1.给定一个字符串,返回行程编码字符串输入字符串。
例如-aaabbcddddde -> a3b2c1d5e1https://www.geeksforgeeks.org/run-length-encoding/
2. 给定一个由正整数/点组成的矩阵。我们必须从左下角开始,到达右上角。我们的路径应该是我们获取最大点的路径。只允许向上和向右两次移动,即从一个单元格 (R, C),您可以转到 (R, C+1) 或 (R-1, C)。
第 3 轮 – Coderpad 2
他们要求再进行一轮 Coderpad。这次也问了两个问题。
1. 找出字符串的第一个非重复字符。https://www.geeksforgeeks.org/given-a-string-find-its-first-non-repeating-character/
2. 计数。从底部到达第 n 级楼梯的方法。一次可以走 1、2 或 3 个步骤。
https://www.geeksforgeeks.org/count-ways-reach-nth-stair/
在此之后,我被要求在班加罗尔办公室进行面对面的采访。一共5轮面试,都是技术面。每轮由两名面试官进行。
第 4 轮 – 技术面试
1. 首先是自我介绍以及我在当前组织中所做的工作。然后对它进行一些讨论,特别是涉及 REST 服务。然后他们让我以一种有效的方式为某种情况编写了一个 HTTP GET 方法。
2. 使用堆栈实现队列。首先,我使用两个不同的堆栈解决了它。
3. 然后他们让我只使用 1 个堆栈来实现队列。 https://www.geeksforgeeks.org/queue-using-stacks/
4. 什么是二叉搜索树?
5. 编写一个程序来检查二叉树是否是BST。
https://www.geeksforgeeks.org/a-program-to-check-if-a-binary-tree-is-bst-or-not/
6.什么是JDK、JRE、JVM?然后是关于我给出的答案的更多问题。
7. 给定一个只包含 0 和 1 的矩阵。每行将有一定数量的连续 0,后跟一定数量的连续 1。我们必须找到包含最大 0 的行以及该行中 0 的数量。起初,我建议在每一行上实施二分搜索来查找零的数量,然后比较每一行的零的数量。面试官说这是对的,但他们想要更好的东西。然后我建议在第一行实现二进制搜索,存储包含最后一个 0 的索引,然后在该索引的矩阵中向下移动。如果遇到 1,则可以放心地忽略该行。如果得到 0,则可以在该行上实施二进制搜索并更新存储的值。面试官对这个解决方案很满意。
8. 数组和链表的区别。在哪种情况下,您会选择其中之一?
第 5 轮 – 技术面试
1. 这一轮以很多基于简历的问题开始。为什么我们使用 AJAX、jQuery、RequireJS?它们有什么用途,我们为什么需要它们?模块化加载需要什么?
2. 关于C++和Java的OOPs概念的一些问题。你更喜欢哪种语言?
3.水陷阱问题。https://www.geeksforgeeks.org/trapping-rain-water/
4. 以下问题的变体。骑士的动作与传统骑士略有不同。 https://www.geeksforgeeks.org/minimum-steps-reach-target-knight/
5. 有许多动物园,编号从 1 到 n。动物园里有四种动物——蚂蚁、大象、猫和狗。蚂蚁和大象是敌人。猫和狗是敌人。有一辆面包车,用于从动物园中挑选动物并运往其他动物园。敌人不能同时在货车里。给定从 1 到 n 的两个序列 PICK 和 DROP,分别描述了要从每个动物园拾取和丢弃的动物。我们必须判断货车是否有可能从 Zoo-1 到 Zoo-n 并完成所有这些拾取和掉落,而在任何时候都没有敌人在货车中。
第 6 轮技术面试
1. 为什么你想在你的公司工作一年后跳槽?
2.找到数组中缺失和重复的数字。 https://www.geeksforgeeks.org/find-a-repeating-and-a-missing-number/
3. 他们开始详细讨论我现在公司的一个项目。他们拿起其中的一部分并告诉我重写代码,比我在那里写的更好。
4. 然后他们选择了我的一个最新项目,并试图了解该项目的完整流程。他们很想知道我了解项目的每个细节,而不仅仅是我参与的部分。
5. 然后他们给了我一个设计问题。他们向我们刚刚讨论的 Web 应用程序添加了新功能和页面。然后他们让我设计整个东西,即数据库表、Web 服务、UI。讨论了每一个小细节,他们渴望看到一个好的设计。这场讨论持续了大约 45 分钟,他们对小细节越来越深入。此外,他们希望我为我建议的每个 Web 服务提供一个合适的、易于理解的名称。
第 7 轮 – 技术面试
1. 什么是运算符重载?编写描述运算符重载实现的代码。
2. 为字符串上的 +运算符编写一个运算符重载方法,将第一个字符串与第二个字符串的反向连接起来。
Ex- String1- app String2- le 然后 String3 = String1 + String2 = appel。
我写完方法后,他们要求我优化我的方法。所以我建议第二个字符串更快的反转。
3.写一个方法来测试上面的代码。他们希望我编写一个简洁的测试代码,其他对我的原始代码一无所知的人也可以理解。
4. 不同的测试概念。什么是单元测试、集成测试、回归测试?他们每个人都需要什么?
5. 测试讨论导致环境讨论。我在回答中提到了生产和测试环境。所以他们开始讨论同一个应用程序需要这么多环境。
6. 如果我们为您提供要添加到应用程序的特定功能,您将如何做?你将如何记录它,测试它?您将如何通过应用程序的不同环境?
第 8 轮 – 技术面试
1. 讨论我在目前公司所做的最新项目。
2. https://www.geeksforgeeks.org/search-an-element-in-a-sorted-and-pivoted-array/
3. https://www.geeksforgeeks.org/design-a-stack-that-supports-getmin-in-o1-time-and-o1-extra-space/
4. 一些关于首选编程语言、未来计划等的一般问题。
每次技术面试后,面试官都会给你一个提问的机会。你可以问很多问题,澄清你所有的疑惑。在此之后,几天后我接到了一个电话,说他们想推进我的候选人资格。我拿到了offer。
从 GeeksForGeeks 准备和深入了解您的项目足以通过。显然,您也应该具备编程的诀窍。
.