FactSet来到我们学院招聘。我们被要求制作PPT。PPT结束后,大家都对演示印象深刻。PPT之后是一次书面编码测试。之后进行了2次技术面试和1次人力资源面试。
第一轮: 这是纸和笔的循环,有三道题,分别是25分、15分和10分。
1. 给定两个数组x和y。查找xy>yx的对(x,y)的数量 输入O(mlogm+nlogm)。 解决方案——我试图通过对y数组进行排序来解决这个问题,然后为每个x找到y中大于x中元素的最小元素。然而,我错过了例外情况。比如x=1等。
2. 给定一个数组x,数字以AP表示。然而,有一个术语缺失。找到丢失的号码 在O(logn)中。 解决方案——我稍微修改了二进制搜索,解决了这个问题。我首先发现了共同点。然后我使用分治技术来解决这个问题,比如使用第一个和最后一个元素的平均值来找到中间元素。然后通过使用第一项+diff*指数计算,检查我们通过平均得到的中间元素是否与AP项相同。
3.给一棵树。打印有边界的元素。 解决方案-在左侧边界标记元素,在右侧边界标记元素。然后打印非叶节点和未标记节点。
第二轮: 这是第一次技术面试。这次采访只包括简单的问题。我被要求使用顺序遍历 按相反顺序打印BST的元素 .我首先告诉他,我们可以交换左子树遍历和右子树遍历的位置,但他告诉我,左子树将在右子树之前遍历。所以,我让他把元素按进堆栈,然后弹出元素。他要求实现堆栈。我开始写我的程序,但他告诉我,我不能用函数返回值来存储栈顶。所以他给了我使用静态变量的提示。我用它解决了这个问题。
第三轮: 这是第二次技术面试。他首先让我解释我在第一轮中写的代码。在这之后,真正的面试开始了。这次采访有三个问题。都是编码问题。
1.第一个问题是一个动态规划问题,其中一个矩阵带有一些值。我们必须从(0,0)开始,在(m,n)结束,条件是我们只能向前和向下移动。虽然我从未遇到过这个问题,但我在一两分钟内就解决了这个问题。这个解决方案给他留下了深刻的印象。
2.我被要求 实现一个堆栈,在其中我们可以在O(1)中找到最小元素,同时推送和弹出操作应该取O(1)。 起初,我试图使用数组实现堆栈,但后来他暗示我使用链表。经过这个暗示,我终于解决了这个问题。
3.最后一个问题是以最小的时间复杂度在电话簿中找到重复出现的情况。我提出了一种使用哈希的方法。他同意这会解决问题,但他想让我用另一种方法来解决。他给了我一些暗示,图表在这里可能会有所帮助,但我明确地告诉他,在他结束采访一段时间后,我对图表不太满意。我问他用图表能解决什么问题。我惊讶地发现他甚至没有解决方案,他告诉我他必须思考才能找到解决方案。
面试后他对我印象深刻。
第四轮: 基本上是HR回合。我只花了10-15分钟。他问我实习和项目的情况。我的兴趣和爱好。为什么我想加入这家公司等等。
我非常喜欢这家公司,因为它的包装非常好,一年内进行了两次评估。员工在这家公司获得的津贴和福利。
如果你喜欢Geeksforgek,并想贡献自己的力量,你也可以写一篇文章,然后把你的文章发到contribute@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。