📜  MakeMyTrip 面试经历 | (在校园 2019)

📅  最后修改于: 2022-05-13 01:58:38.719000             🧑  作者: Mango

MakeMyTrip 面试经历 | (在校园 2019)

MakeMyTrip 于 2019 年 8 月 12 日来到我们的校园 BIT Mesra。

第一轮是编码轮。有 2 个问题(一个 100 分,另一个 50 分)和 20 个 mcqs。

Q1。给定一个数字数组,对于数组中的每个第 i 个元素,您必须计算i左侧且大于第 i 个元素的数字计数与到达第 i 个元素的数字计数之间的绝对差。 i的右边并且小于第 i 个元素? (50 分)

答。我使用了段树两次(第一次通过按升序对数组进行排序来计算所有数字的计数,第二次通过按降序对数组进行排序)来使用类似于反转计数的概念来解决它。

Q2。给你一棵树,有N个节点和Q个查询。下一行包含N个整数,表示与每个第i 个节点关联的颜色。对于每个查询,您都会获得一个节点编号。现在您必须将其子树中的所有节点标记为特殊节点,并且与该节点具有相同的颜色。一旦一个节点被标记为特殊,它在后续查询中仍然被标记为特殊。那么对于每个查询,您必须输出树中特殊节点的数量?

答。我简单地应用了蛮力方法,10 个测试用例中有 9 个通过了 XP。我保留了一个visited[]数组并保留了一个全局计数变量来计算特殊节点的数量。因此,对于每个查询,我只是遍历该节点的子树并检查它是否具有相同的颜色并且visited[node] 是否为假,如果是,那么我增加计数并标记visited[node]=true。然后我输出计数。

在这一轮编码之后,有 21 人入围🙂

面试轮次

第1轮:
在这一轮中,他们问了我两个问题,一个是 SQL 查询,另一个是与 digit dp 相关的问题。

SQL 问题:他们给了我一个包含一些 id 和 Booking_amount 的表。现在我的输出应该包含每 500 个范围内的 booking_amount 计数。

例如:
输入:

PidBooking_Amount
120
2100
3510
41020

输出:

MinMaxCount
15002
50110001
100115001

我不知道如何进行这种查询,所以我继续尝试但我无法做到最后我告诉他们如果我有范围那么我们可以使用聚合函数来计算计数。

DP 问题:我必须计算从 0 到给定整数的个数。
我告诉他们蛮力方法和数字 dp 方法,他们首先告诉我在纸上写完整的代码,但过了一段时间他们告诉我在 ide 上运行我的代码。

第 2 轮:
在这一轮中,他问了我的爱好,我告诉他们我玩dota 2,并且我在XP中花了2000多个小时,然后他问我关于我的项目,然后问了我一些与它相关的问题,比如我为什么使用mongoDB 而不是 SQL(几乎所有面试都会问这个问题,所以我已经准备好使用我的武器 XD)。然后他给了我一个系统设计类的问题(我不知道)。他告诉我,我必须设计一个系统,其中用户输入一个来源和他的数量,我必须输出他可以访问、停留和返回的所有目的地,只使用那个数量。他告诉我,我必须告诉他我需要的一切,以及为了实现这一点我将采取的方法和算法。

我首先从我需要的所有数据库以及我将使用的数据结构开始,最后告诉他,当有查询时,我将在所有数据库中搜索总成本,输出目的地并将其存储在地图中,下次当有相同的查询时,我可以输出这个保存的目的地(所以你看我没有任何技术知识,但我一直在尝试并不断为他们提供解决方案以立即解决每种情况,他们基本上想看看我能多快和多有创意想办法解决一些未知问题)

然后他给了我一个简单的问题。
在某个城市中,所有小写字母都以下列方式映射。
1 -> 一个
2 -> b
3 -> c
.
.
.
26 -> z

现在数字流来了,我必须输出它可以表示为字母的方式的数量。

例如:一个流来了,我必须以下列方式在每个数字之后输出

输入: 3
输出: 1

解释:
3 -> c

输入: 2
输出: 2

解释:
23 -> w
或者
23 -> 公元前

输入: 1
输出: 3

解释:
123 -> 美国广播公司
或者
第123章
或者
第123章

我用斐波那契数列来解决这个问题。

第三轮:
在这一轮中,他告诉我,我必须设计一个评分系统,我必须在其中输出前 100 名参与者的分数。我告诉他我将使用最小堆来存储它。然后他问了我很多问题,比如大约 10 到 12 个与这个问题相关的问题 XD 比如修改一些情况,比如假设一个人 A 是一个人 B 的朋友,那么 A 的最终分数将是他们两个分数的总和,然后 B 同样我必须计算前 100 名的分数。

正如我已经告诉过的,他只是想让我看看你的思维速度和你处理新问题的方式。

这是我最好的一轮,因为我回答了几乎所有的问题,而且几乎立刻就回答了 XD

只是一个提示尝试尽快回答,但如果它是一些蛮力,并尝试为所有问题提供不同的优化方法。

人力资源回合:
这是最后一轮。在这个过程中,人力资源部询问了我的背景,比如我的家庭、我的爱好、我的优势和劣势。然后她问我有没有什么问题要问她。所以我问她关于补偿 ($$$) XP 的问题。

整个过程从上午 10:00 到晚上 11:00 (O_O) 耗时约 13 小时

最后从 21 个人中选出了 7 个人,显然我是其中之一 XD 。