MakeMyTrip 软件工程师面试经验
状态:应届毕业生,BE COE Tier-1 College
职位:MMT 的 SDE
地点:古尔冈/班加罗尔
日期:2020 年 8 月
第 1 轮:HackerEarth 在线评估
8 个 MCQ 和 2 个算法编码问题。
- 给定坐标 (x,y)。最初,您在 (1,1) 并且需要使用以下规则转到 (x,y):如果当前位置是 (a,b),那么在下一步移动中,您只能移动到 (a+ b,b) 或 (a,a+b)。
编写一个程序来检查您是否可以仅使用所描述的移动到达 (x,y)。
约束: 1<= T <= 10^5 , 1<= x,y<= 10^18
提示:找到 gcd(x,y)。
文章链接:https://www.geeksforgeeks.org/check-possible-move-given-coordinate-desired-coordinate/
练习链接:https://practice.geeksforgeeks.org/problems/check-if-possible-to-move-from-given-coordinate-to-desired-coordinate5944/1 - 给你 N 个节点。任意 2 个节点之间有 N-1 条连接边。每个节点都有一个由数组 A 表示的值。
编写程序沿边 i 划分树,以最小化边任一侧的节点值之和之间的差异。
链接: https://www.hackerrank.com/challenges/cut-the-tree/problem (类似的问题,但在问题中你应该找到给出最小 abs 差异而不是差异的边缘)
文章链接:https://www.geeksforgeeks.org/delete-edge-minimize-subtree-sum-difference/
第 2 轮:技术面试 – 1
有 3 个基于 DS 的问题,所有这些问题都是在 codepair 上实时编码的。
- 这是一个通过回溯解决的二进制矩阵中的寻路问题。
类似于 https://www.geeksforgeeks.org/longest-possible-route-in-a-matrix-with-hurdles/。 - 这是一个基于 hashmap 的问题,给定了 2 个数组,并且应该打印出给定数字 K 的对。
文章链接:https://www.geeksforgeeks.org/print-all-pairs-with-given-sum/
练习链接:https://practice.geeksforgeeks.org/problems/count-pairs-with-given-sum5022/1 - 检查二叉树是否是 BST。
文章链接:https://www.geeksforgeeks.org/a-program-to-check-if-a-binary-tree-is-bst-or-not/
练习链接:https://practice.geeksforgeeks.org/problems/check-for-bst/1
关于 OOPs 概念的一些讨论:
- 什么是 4 个主要的 OOP 概念?
- 用例子解释所有这些。
操作系统:
- 高速缓存存储器。
- 临界区问题。
- 互斥量与信号量。
第 3 轮:技术面试 – 2
这一轮首先讨论了我简历中列出的项目和我的暑期实习生。
- 然后面试官问我用的是哪个操作系统。我使用 Linux,所以他问了我一些与 shell 命令相关的问题,我或多或少地回答了这些问题。
- 然后有一个 DS 问题来查找字符串中最长的重复子字符串。我给出了一种蛮力方法,然后使用哈希图对其进行了优化。面试官似乎很满意。
文章链接:https://www.geeksforgeeks.org/longest-repeating-and-non-overlapping-substring/
练习链接:https://practice.geeksforgeeks.org/problems/longest-repeating-and-non-overlapping-substring3421/1 - 然后关于 DS 的另一个问题:给定一个数组 arr[],找到最大值 j - i 使得 arr[j] > arr[i]。
我给出了 O(n) 时间和 O(n) 空间方法。
采访结束。
第四轮:人力资源轮
跟HR打了5分钟的电话。这更像是一种形式,之后我被提供了一个职位。