该过程从一个在线测试开始, 该在线测试由10个选择题(15分钟)和一个编程问题组成。关于在线回合有一个收获。我们必须先尝试MCQ, 15分钟后我们必须去编程部分, 而不能去MCQ部分。 MCQ主要基于诸如寻呼, OOP概念等计算机科学知识, 以及一些关于概率和其他事物的量化指标。问题或多或少是在较容易的方面。我们必须编写的程序是最长递增子序列(LIS)。
第一回合:技术回合(约1小时):
Q1:告诉我有关你自己的信息, 例如你感兴趣的事物以及所有事物。
Q2:给定大小为n的正整数数组, 找到多数元素, 即找到数组中出现次数超过n/2次的元素。
我的回答: 第一, 我告诉他, 我可以拍一张地图, 并在地图上存储每个唯一元素的频率。然后, 我将遍历地图以查找频率> n/2的元素。他告诉我不要使用多余的空间。第二, 我告诉他, 我将对数组进行排序, 并且根据求中位数的规则, 中间元素将成为我的目标元素。然后, 他告诉我在O(n)时间内完成此操作, 而无需使用额外的空间。现在这是我曾经做过的一个问题面试位但即使经过非常努力, 也无法在此时提出逻辑。以下是"采访位"和" lsbin"中与该问题有关的链接。https://www.lsbin.org/majority-element/
第三季度:你将获得两个整数数组。假设第一个数组中的元素x的频率为y, 第二个数组中的元素的频率为z。 Yo必须构造一个新的数组, 其中两个数组中每个元素x的x频率均为min(y, z)。你必须在最佳时间内完成此操作, 而无需使用任何额外的空间。
我的回答:对两个数组进行排序。然后继续合并两个排序数组的算法。他对解决方案印象深刻。
Q4:你将获得一棵二叉树。给定该树的任何节点, 请打印与给定节点d距离的所有节点。
我的回答:首先, 我将找到给定节点的级别, 并假设它是升。现在, 如果给定的距离是d然后我必须打印的节点将处于水平升+dor升-d我们可以通过简单遍历给定节点的子代找到l + d处的节点。但是, 在进行l-d运算时, 有时会遇到负val。如果l-d的值为负, 则必须从根开始遍历给定节点所在的树的相反子树, 然后在-(l-d)级别打印元素。
N.B.他要求我为上述所有问题实施职能。我为第一个问题的前两种方法编写了程序, 第二种方法的唯一方法, 但是由于卡在某个地方, 我无法完成第三种方法的代码。他说还可以, 并告诉我在外面等。
第二回合:技术回合(约90分钟):
Q1:你将获得两批(数组)字符串。你必须以最佳方式找到它们的交集。
我的回答:我拍了一张地图, 计算了array1中每个字符串的出现。然后, 我遍历第二个数组, 如果在地图上找到该字符串, 则将其打印出来, 并将该字符串在数组中的出现标记为0。他对解决方案印象深刻。
Q2:有两个河岸, 水在它们之间流动。河中有n块石头, 左岸和第一块石头之间的距离为d1, 第一和第二块石头之间的距离为d2, 依此类推。最后, 最后一块石头与右岸之间的距离为d(n + 1)。每块石头都有可能保持你的体重, 它们的大小分别为p1, p2, …, pn。我们从左岸到达右岸的最大可能性是多少?
我的回答:我给了他一个动态的编程解决方案。他说这是对的, 但我指出了我犯的一个小错误。
第三季度:有一个字符串数组。假设有一个字符串的最后一个字符与另一个字符串的第一个字符匹配。在那种情况下, 这两个形成一个环。你已找到由数组中的字符串形成的环的最大长度。让我用一个例子来解释这个问题。假设字符串数组为{ear, track, 疲倦, rat, doe}。在这里, 最大的戒指将是耳朵->老鼠->疲倦->母鹿>耳朵。因此, 长度将为4。
我的回答:我通过动态编程解决方案解决了这个问题。他问我解决方案的时间复杂度。我告诉他它将是O(n * n)。他告诉我可以在O(n)中完成。所以给了一个想法, 但徒劳。
N.B.他要求编写上述所有问题的函数。我为上述所有问题编写了代码, 除了最后一个的O(n)时间算法。
第三回合:管理(约30分钟):
面试官向我询问了我的兴趣, 我告诉了他与第一位面试官相同的内容。他问我什么是梯度, 以及如何在机器学习中使用它。然后, 他向我询问了我的B.Tech。第4年项目, 并给出了与该项目相关的现实生活方案的解决方案。然后他问我是否对机器人技术感兴趣, 并问了我几个关于机器人技术的问题。然后他要求我设计一个具有"与非"门的"或"门, 以测试我对通用门的了解。最后一个问题是我如何让8年级的孩子理解什么是接口。仅此而已。
这是我整个采访过程, 我真的很感谢极客在准备安置方面给了我很大帮助。
欢呼声, 对所有想找工作的男孩和女孩们, 一切顺利。祝好运。