📜  MakeMyTrip 面试体验 |设置6(在线编码)(1)

📅  最后修改于: 2023-12-03 15:02:51.097000             🧑  作者: Mango

MakeMyTrip 面试体验 | 设置6(在线编码)

在 MakeMyTrip 面试中,笔试环节我们被要求进行一次在线编程的测试。

测试情况

我们需要在规定的时间内(大概是20-30分钟)内,通过在线编程的方式,解决一个算法问题。代码需要通过特定的平台提交,并经过评分。笔试的结果会在面试结束后通知我们。

编程问题

这道问题的主要意图是要我们实现一个函数,该函数可以接收一个长度为n的整数数组和一个目标数字,然后返回一个嵌套数组,其中每个嵌套数组都包含两个数字,使得它们相加等于目标数字。如果不存在这样的嵌套数组,则返回一个空数组。 嵌套数组应按照数字大小升序排列。

以下是实现该函数所需的输入和输出的示例:

输入:
array = [2, 7, 11, 15]
target = 9
输出:
[[2, 7]]
解释:由于`2 + 7 = 9`

输入:
array = [1, 2, 3, 4, 5]
target = 7
输出:
[[2, 5], [3, 4]]
解释:由于`2 + 5 = 7`且`3 + 4 = 7`
解题思路

我们可以使用哈希表来解决这个问题。我们可以遍历数组,将数组中的每个数字存储在哈希表中并为其分配一个索引。然后我们可以再次遍历数组,并检查哈希表中是否存在与目标数字相对应的数字。如果找到,我们就可以将这两个数字添加到结果数组中。最后,返回结果数组。

以下是用Python实现该算法的示例代码:

def two_sum(nums, target):
    seen = {}
    result = []

    for i, value in enumerate(nums):
        remaining = target - value
        if remaining in seen:
            result.append([remaining, value])
        seen[value] = i

    return result
总结

MakeMyTrip的面试体验非常好。在线编程测试提出了一个有趣的问题,并且考察了我们解决问题的能力。通过这个测试,我们从中学到了如何使用哈希表进行快速查找。总体而言,这是一次很有意义的体验,使我们更加熟悉了编程世界。