📜  Nutanix面试体验–校园实习

📅  最后修改于: 2021-05-24 22:54:06             🧑  作者: Mango

Nutanix Technologies来到我们的校园BITS Goa进行校园内招聘流程。他们进行了多轮筛选,最终选择了3名候选人。

在线测试:Hackerrank平台

我们被分配了1个小时来解决两个问题。

第一个问题:给定具有特定技能值的n个裁缝(正整数数组)和m个任务(正整数数组),我们需要找出裁缝将花费多少时间来完成m个任务的协同工作。

如果裁缝的技能值> =任务值,则裁缝可以执行1个任务。由1个裁缝完成1个任务需要1个小时。例如:裁缝:4 5 6任务:如果技能4 5 6的裁缝被赋予任务5 5 6将花费1个小时NULL 5 5 / NULL NULL 6(2 hrs):然后,裁缝可以分配任务并按照每个进行一次技能值,以使消耗的时间最少(在这种情况下为2小时)。

在Binary Search上,这是一个美丽的问题。可以将其建模为https://www.spoj.com/problems/AGGRCOW/,在此您需要对答案本身(即完成时间)进行二进制搜索。

第二个问题:这是一个动态编程问题

这个问题有一个故事。我只是在说这个问题的症结所在。给定2D矩阵具有*(表示可用)或#(表示不可用)块。给出整数k。需要考虑所有连续的k个可用块(垂直或水平)。将存在一组(连续的)块,这些块可以重叠,其连续性大于k。任务是根据输入矩阵找到任何块可以具有的最大重叠数。为了解决这个问题,理解这个问题非常重要。

制作3个相等维度的2D矩阵作为输入所需的答案。垂直连续块数(> = k)为1。 1表示水平,1表示所有最终重叠。

任何能够解决1个完整问题和至少一半测试用例的学生都将入围。包括我在内,本轮有14名候选人入围。

回合0:调试回合

在这14名学生中,我们一半将被淘汰出局。我们为Semaphore和Mutex锁的OS概念提供了2个C++面向对象的代码。这不是OOP调试,而是基于OS同步的逻辑错误的调试。我们被要求指出错误并提出更正建议。在少数地方缺少分号,但被告知仅指出逻辑错误

在第一个问题中,我们必须考虑Mutex锁定和异常处理。

在第二个问题中,对信号量的生产者-消费者问题进行了一些小的调整。

在总共10个错误中,我能够针对两个问题指出4/6和4/4错误。这些方法在下一轮讨论中进行了讨论。面试官告诉我,我是本轮得分最高的球员之一。

第一回合:技术回合

面试官有一块秒表。一旦他解释了每个问题,计时器便启动了。 (他不应该提这个。我只是注意到了)

第一题:根据给定的水平顺序遍历构造BST

第二个问题: https://www.geeksforgeeks.org/given-sorted-dictionary-find-precedence-characters/

我花了一段时间才弄清楚第一个问题的解决方法。面试官给出了一个小提示,使我找到了正确的解决方法。我很快就解决了第二个问题。他要求我为这两个问题编写伪代码。我做到了,很高兴。

回合2:恢复回合

这轮是基于简历的回合,同时还有一些人力资源问题。

面试官是与Nutanix一起工作的23年经验丰富的工程师,根据我对项目和案例研究的解释,提出了非常聪明的问题。 (顺便说一句,这是GFG无法帮助您的唯一回合😛)会议进行了40 – 45分钟。最后,他告诉我,他非常喜欢我在简历中提到的案例研究和项目中对自己的工作和贡献做出的热情解释。这回合非常吸引人,他的许多问题都在试图确定我适合的公司部门。面试结束后他很高兴。

第三回合:设计回合

在此回合开始之前,面试官讨论了我的“调试”回合方法,并指出了我遗漏的错误。

在这一轮中,我被要求使用适当的数据结构来实现LRU缓存。 https://www.geeksforgeeks.org/lru-cache-implementation/

之后,他要求提供更多可用于缓存的算法以及实现它们的方法。我告诉他LFU(最少使用)。然后,讨论了两种技术的优缺点之间的区别,并对问题进行了进一步的调整。

在回合结束时,他问我是否对他有任何疑问。我提出了一些问题,他正确回答了这些问题,同时也为我在软件工程领域的职业生涯提供了指导,为我提供了建议。

当我被困住时,所有面试官都试图帮助我,同时寻求答案。我发现与NUTANIX团队进行的总体采访非常有益,并且轮次进行得非常顺利。最后,我是Banglore的NUTANIX Technologies的3名候选人之一