Zoomcar 面试体验
有六轮。
短篇故事-
第一 - 在线(10 个 MCQ 和 5 个编码问题,90 分钟)
第二——算法
第三——技术
第四——数据结构与算法
第五——数据结构与算法
第六——项目、算法和谜题。
很长的故事-
第一轮是在线编码。它由 10 个基于数据结构、复杂性、sql 查询、操作系统、aptitude、c 和 c++ 的 mcq 组成。它还包括 5 个编码问题。其中两个相当直截了当,一个中等,另外两个强硬。我只能解决 3 个问题,第四个解决了一半。在其中一个问题中,您必须实现二叉搜索树。我不记得确切的问题了,如果你阅读 geeksforgeeks 那么你可以通过这一轮。
第二轮是电话。我被问到两个编码问题。给定一个对行和列进行排序的二维数组,找到给定的元素。你可以在这里找到一个 O(m+n) 的解决方案 Search in row wise and column wise sorted matrix。另一个问题是一个二维数组,其中元素是“x”或“o”。如果顶部、底部、右侧和左侧元素都是“x”,则将所有“o”替换为“x”。我使用两次遍历来做到这一点。在第一次遍历中,我将满足约束的“o”替换为任意值“y”,然后在第二次遍历中将所有“y”替换为“x”。有人问我是否知道任何版本控制软件。我说,我知道 git 和 svn。他让我说出 git merge 和 rebase 之间的区别。他问我如何实现自己的版本控制软件。我告诉他我会使用 MD5 算法来实现它。我会查看哈希值是否不同,然后相应地指出本地存储库中发生了一些变化。他不想让我说出整个设计,他对我的回答很满意,面试的时间到了。
第三轮是理论上的。他问我系统调用、fork、nfa 和 dfa 的区别、rsa 算法、虚函数、继承、多态、unix 文件结构中的 inode。他在测试我的概念。您需要了解操作系统和计算理论的基础知识才能在这次面试中脱颖而出。
第四轮主要是基于数据结构和算法。他让我说出二叉搜索树和二叉树的区别。区分二叉树和堆。如何删除二叉搜索树中的节点。给定两个大小相同的数组,其中包含随机排列的值。您需要重新排列这些值,以便如果两个数组是 a 和 b,则为对应值的乘积之和,即 a1*b1 + a2*b2 + a3*b3 + ...。 + an*bn 其中 a1,b1 分别是大小为 n 的数组 a 和 b 的第一个元素。我对这个问题给出了一个答案,我将简单地按升序对一个数组进行排序,将另一个数组按降序排序,并进行相应的操作,它会给我所需的结果。
我被叫到现场参加下一轮比赛。
第五轮是f2f d,讨论了我的大学项目和实习船项目。然后他又继续问算法相关的问题。给定一个数,找出下一个最大的回文数。给定一个三元搜索树,你将如何插入、查找和删除元素。三元搜索树的实现方式是每个元素都有左、中、右三个子元素。左侧值小于父值,中间值等于父值(中间值仅在重复元素的情况下才会出现),右侧值大于父值。考虑到中间值,树应该是高度平衡的。
在第六轮也是 f2f 轮中,讨论了我的项目以及我之前是否有任何 Web 开发经验。他要求告诉我当我在浏览器中输入网址时会发生什么,并详细解释每个步骤。然后让我在无重复的已排序旋转数组中搜索一个元素,然后将问题扩展到搜索带有重复的已排序旋转数组中的元素。接下来有人问我一个谜题,你有 10 瓶,每瓶有 10 片。片剂通常重一克。其中一个瓶子有 2 克重的药片,当你有一个称重机时找到瓶号,它会告诉你放在上面的重量,你只能使用一次。我给了他一个直截了当的回答,我将从第一瓶中取出 1 片,从第二瓶中取出 2 片,从第三瓶中取出 3 片,等等,它会唯一地告诉我哪个瓶子有 2 克称重的药片。然后他扩展了问题,如果有两个这样的瓶子,那么你怎么能找到它们。我无法解决这个问题,因为限制是每瓶 10 片。如果不存在此约束,我会从第一个中取出 2 个,从第二个中取出 4 个,从第三个中取出 8 个,然后我可以唯一地识别具有不同重量片剂的两个瓶子。
如果您喜欢 GeeksforGeeks 并想投稿,您也可以写一篇文章并将您的文章邮寄到contribute@geeksforgeeks.org。在 GeeksforGeeks 主页上查看您的文章并帮助其他 Geeks。