在线回合:本回合在Hackerrank上进行了1:30个小时。本轮有两个问题。
- 给出了一棵最多有10 ^ 5个节点的树。有10 ^ 5个查询。每个查询都给出一个节点,并且要回答其子树的预遍历。
- 有一个无向图,其中包含源和目标。每分钟将执行以下操作–
- 在当前节点上,沿着最短路径选择一条道路。
- 如果您已到达目的地,请停止。
- 否则,从此节点中选择除您所经过的那条路以外的任何随机路,然后转到步骤1。
找到最坏情况下到达目的地所需的时间。如果不可能,请打印-1。
14人被选入下一轮。
调试回合:此回合中还有2个问题,时长为1:15。这些问题包含逻辑错误,需要纠正。
- 给出了一个代码,该代码具有在循环链表的开头插入节点,并将循环链表拆分为两个长度为一半的循环链表的功能。
- 给出了基于操作系统的代码,其中创建了多个线程,这些线程正在从不同的输入文件读取,并且所有线程都正在写入同一输出文件。限制是一次只能将400个字符一次插入文件,并且所有无法访问输出文件的线程都在队列中等待。
6人被选入下一轮。
接下来的两轮比赛遵循相同的模式。每轮有一个问题,所有学生同时被问相同的问题。受访者回答问题后,被问到他们的项目,或者有时是C / Java等。
第一回合(F2F)
- 在无限的2D图中。您在位置(1,1)。您必须转到(M,N),其中1 <= M,N <= 10 ^ 7。从位置(X,Y),您只能转到(X + Y,Y)和(X,X + Y)。如果可以转到(M,N),则打印要采用的路径,否则,打印NO。显然,从约束条件出发,需要一个O(N)解决方案。 (提示:尝试反向操作)。
第二回合(F2F)
- 您有一个数字数组。您必须给出每个数字是最大元素的范围。例如,如果数组为1、5、4、3、6,则输出为
- 1 [1,1]
- 5 [1,4]
- 4 [3,4]
- 3 [4,4]
- 6 [1,5]
这里也需要O(N)解决方案。(考虑使用堆栈)。
在两个回合中,有5个学生最佳地回答了问题。在第二轮之后,三个人被选为人力资源回合,虽然其中两个人被三个面试官加在一起进行了额外的回合,但他们被问到系统设计问题。
第三轮(人力资源):通常的人力资源内容,例如关于履历的问题,告诉我有关您自己,这家公司的原因,爱好,未来计划,地点选择,您如何与表现不佳的团队成员打交道等等。
被选出的三个人获得了6个月的实习期和FTE,另外一轮的其中一个人仅获得了6个月的实习期。
我感谢GeeksforGeeks在面试准备过程中提供的所有帮助。