Myntra 面试经历 | Set 6(软件工程师校内)
线上回合
这一轮有 5 个 mcq 和 2 个编码问题。
mcq 的主要是定量能力,如盈亏、年龄、训练、比率和比例。
编码问题如下:
1. 给定一个整数数组,找出任意两个元素之间的最大差异,使得较大的元素总是比较小的元素位于更高的索引处。
https://www.geeksforgeeks.org/maximum-difference-between-two-elements/
2. 给定一组长度为 N 的棒,执行切割操作,以使每根棒在每一步中被切割该集合中的最小值。重复同样的操作,直到没有棒子剩下,并输出每一步切割的棒子数量。
https://www.hackerrank.com/challenges/cut-the-sticks
本轮1.5小时,共有25人入围面试。
个人访谈:第一轮
1. 给定二叉树的前序和后序遍历,编写代码来构造二叉树。
2. 用你能想到的所有方法(递归、迭代、堆栈等)反转链表的代码
3. 在给定大小“k”的组中反转链表的代码,例如如果 k=3 每 3 个节点反转一次。
4.OS上关于CPU调度的几个问题,解释不同的调度算法。
个人访谈:第 2 轮
1. 查找数组中的第二大元素,我说的是堆排序(保持一个最小堆)所以我被要求写一个堆排序的代码。
2. 在 n*n 2d 矩阵中,从第一个元素即 array[0][0] 开始,唯一可能的移动方式是直接移动到其下方的元素或元素的对角线右侧。同样,当我们移动时,继续在路径中添加元素。给出一种以最小总和达到矩阵最后一层的方法。
Ex : 1 2 3 4
23 45 1000 10
12 8 990 78
总是从 1 开始,可以到 23 或 45。如果是 23,那么到那时的总和将是 24,否则为 46,依此类推。
3.给定一棵二叉树,求任意两个叶子节点之间的最大和(当然叶子节点没有给出),即两个叶子节点(包括叶子节点)之间路径中的节点的最大和。
注意:叶节点可以属于同一子树,也可以不同。
4. 给定一个未排序的元素数组和一个总和“k”,查找是否存在子序列,使得子序列中元素的总和与总和“k”相加。 O(n) 解决方案是预期的。
很少有人问到与我的实习项目有关的问题。
个人访谈:第三轮
1.在“预订我的节目”应用程序下设计任何类别。所以我选择了电影,被要求画一个数据模型来表示所有的实体和它们之间的关系,还要把它变成一个规范化的形式。几乎没有添加更多规范和要求,因此必须设计来处理这些。
2. 诸如为什么选择 Myntra 之类的问题,我的优势、劣势、感兴趣的领域,是什么让我选择了计算机科学与工程。
很少有人问与我的实习项目相关的问题——C 和 C# 之间的区别主要在于可执行文件等方面。
人力资源回合
这是一次随意的友好谈话,其中包含相同的问题,例如为什么要进行工程、您如何看待未来 5 年的自己等等。
最后他们雇用了 3 名学生 :-p
我想将我的成功归功于 GeeksForGeeks 的精彩问题集合。