第一轮(笔试)
这是一个90分钟的在线测试,是在Hackerearth上进行的。它由10个MCQ和3个编码问题组成。 MCQ包括一般能力问题,与网络,编程等相关的问题,非常简单。
编码问题如下:
1. http://www.spoj.com/problems/FARIDA/。问题恰恰是这个。 (标准dp问题)。
(此问题35分)。
2.给出员工在办公室的到达和离开时间。找到所需的最大椅子数,以便在任何情况下都无需员工站立。 (30分的问题)。
例子-
输入-
5.00 6.00 7.00
6.30 7.00 8.00
输出2
与此类似。这个问题的主要内容是读取输入内容,因为事先没有给出员工人数。还要求检查所有INVALID输入并在这些情况下返回-1。
3.给出一个nx m的2D矩阵。矩阵包含整数。给定某人的来源位置和目的地位置,请找到满足以下条件的人可以从来源到达目的地的方式数量:
(i)只能向北,向南,向东或向西运动。
(ii)一个人只有在该单元格的值小于当前单元格的值时,才能从一个单元格移动到另一单元格。 (标准bfs问题)。 (25分的问题)。
第二轮(技术面试)
1.给定一棵二叉树,打印其底视图。她让我在纸上写代码。
2.给定一个字符数组和一个字典,找到编号。可以通过在此数组中的任何字符后加空格来构成的有效句子。一个有效的句子是所有单词都出现在词典中的句子。在纸上写代码。
例子-
输入-catsanddog
输出-2(猫沙狗和猫狗)
3。
给定一个随机整数数组,请在其中找到子序列的最大长度,以使子序列的元素连续。
示例-输入[25,1,26,2,27,3,29,28]
Ans = 5(子序列25,26,27,29,28}
我告诉她O(n ^ 2)和O(nlogn)解决方案的蛮力方法,但她正在寻找O(n)dp解决方案。这一轮持续了大约1个小时。
第三轮(技术面试) –
1.给定一个数组和一个青蛙,在向前的方向上可能存在从任何索引到任何索引的桥梁,而在反向的方向上可能存在从任何索引到任何其他索引的隧道。青蛙最初是在-1索引处。给定一个整数k,from最多可以跳k-1次。例如,如果k = 4且青蛙最初为-1,则它可以到达单元0,1,2(最大3跳)。青蛙在落在包含桥梁或隧道的牢房上时可以避免使用该桥梁或隧道,而只能呆在那里。查找最小编号青蛙可以到达给定目的地“ D”的步骤。
我将整个问题转换成一个图,其中每个节点都将与其下一个k-1节点建立连接,并且还与该节点上的网桥或隧道通向该节点的连接(如果该节点上存在任何网桥或隧道)和然后应用BFS。然后,他让我在纸上写代码。复杂度-O(n * k)
2.给定一个具有循环的链表,请检测该循环并返回该循环的起点。
3.他问我什么是地图(地图的一般概念,而不是特定于C++或Java的语言)。然后他告诉我使用基本数据结构设计一个数据结构,这样在95%的情况下可以在O(1)中进行搜索,而在5%的情况下,进行搜索所需的时间可能超过O(1),并且搜索的内容可以是整数或字符串。
我告诉他以任何方式获取字符串的哈希(乘以质数等),然后取模10 ^ 6,因为数组的最大大小可以为10 ^ 6。然后,他问我如何消除由于相同的哈希值而发生的冲突。我告诉他在碰撞索引处使用具有平衡BST的链接,以实现最小的复杂度(o(logn))。然后他问我,如果假设在1年中只需要将100个元素存储在数组中并在上面的问题中进行搜索,而在1年后元素变为10 ^ 6,那么在1年中,如果我分配10个,将会浪费很多内存最初为^ 6;他问我该怎么做。我告诉他,最初分配100个大小的数组的内存,然后在1年后分配一个10 ^ 6个元素的新内存,并将元素从原始数组复制到新数组。这一轮持续了大约1个小时。
第四轮(管理轮)
这是一轮短短的近10-15分钟的比赛。面试官要我自我介绍。然后他问我为什么要加入沃尔玛。为什么我不想要继续深造,工作和职业之间的区别以及我想要什么,工作或职业?然后,他问我未来五年要实现什么目标。然后,他要求对我的简历中提到的项目进行简短描述。
第五回合(HR回合)
这也是短短的近5-10分钟的一轮比赛。人力资源部请我自我介绍。问我关于我的爱好。我提到的兴趣爱好之一是阅读有关法定语的新闻提要,因此她问我是否对法定语很活跃,以及我在法定语中关注的所有主题是什么。然后她问我为什么要加入沃尔玛,两年后我会在哪里看到自己。她问我是否对编程感兴趣,以及我在哪些网站上参与了编码竞赛。我提到了codeforce,codechef和hackerrank。然后,她向我讲述了在沃尔玛的工作,并问我是否想从事Web开发的前端和后端或物流后端。
建议:
准备来自geeksforgeeks的所有数据结构,提出的最大问题仅来自geeks。在面试中大声思考。每当您遇到任何问题时,面试官都会给您一些提示,以提供帮助。