在线回合:这一回合在 Hackerrank 上进行了 1:30 小时。这一轮有两个问题。
- 一棵树最多有 10^5 个节点。有 10^5 个查询。每个查询给出一个节点,并且要回答其子树的前序遍历。
- 有一个带有源和目的地的无向图。每分钟将执行以下操作 –
- 从当前节点,沿最短路径选择一条道路。
- 如果你已经到达目的地,那就停下来。
- 否则,从该节点中随机选择除您经过的那条路之外的任意一条路,然后转到步骤 1。
求最坏情况下到达目的地所需的时间。如果不可能打印-1。
14人被选中参加下一轮比赛。
调试回合:这一回合也有 2 个问题,时间为 1:15。这些问题包含需要更正的逻辑错误。
- 给出了一个代码,它具有在循环链表的开头插入一个节点,并将一个循环链表分割成两个半长的循环链表的功能。
- 给出了基于操作系统的代码,其中创建了多个线程,这些线程从不同的输入文件中读取,并且所有线程都写入同一个输出文件。限制是一次只能将 400 个字符插入到文件中,并且所有无法访问输出文件的线程都在队列中等待。
下一轮选拔了 6 个人。
接下来的两轮遵循相同的模式。每轮有一个问题,所有学生同时被问到同样的问题。受访者回答问题后,会被问到他们的项目,有时也被问到 C/ Java等。
第 1 轮(F2F):
- 在无限的二维图中。您在位置 (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 名学生在两轮中都回答了最佳问题。在第二轮之后,三个人被选中参加 HR 轮,而其中 2 人被三个面试官加在一起额外进行了一轮,他们被问到了系统设计问题。
第三轮(人力资源):常见的人力资源问题,比如关于简历的问题,告诉我你自己,为什么选择这家公司,爱好,未来计划,地点选择,你如何处理表现不佳的团队成员等等。
三个被选中的人获得了 6 个月的实习和 FTE,而额外一轮的其中一个人只获得了 6 个月的实习机会。
感谢 GeeksforGeeks 在我面试准备过程中提供的所有帮助。