Netskope 面试经历 |校园 2019
Netskope 在 2019 年 9 月的第一周访问了我的大学。他们的招聘过程有五轮淘汰制。
第一轮 - 校园测试
这是在 HackerEarth 上托管的基于技术 MCQ 的在线测试。 200多名学生参加了第一轮的过程。测试有 30 个问题,应在一个小时内解决。这些问题来自核心计算机科学科目——操作系统、计算机网络、DBMS、数据结构和算法。
第 2 轮 - 算法测试
大约 110 名学生入围下一轮。这一轮是在 HackerEarth 上进行的在线编码测试。该测试接受了 HackerEarth 编辑器支持的所有编程语言。共有3个问题,时间为1小时30分钟。
问题 1
基于中国剩余定理。
https://www.geeksforgeeks.org/chinese-remainder-theorem-set-1-introduction/
问题2
给定一个大小为 N 和变量 k 的数组,将数组向右旋转一个元素 k 次。为每个由右旋转形成的新数组构造一个?NX?N 的方阵。所以总共会有 k+1 个矩阵。将所有矩阵相乘并返回最终矩阵的所有元素的总和。
问题 3
对不起!!我不记得了。
注意:此算法测试纯粹是针对提供有效解决方案的算法。天真的方法根本不起作用。
第三轮——技术面试
大约 15 名学生从算法测试中入围技术面试。在进入实际的技术面试之前,我和面试官就在线测试、我的背景、目标和兴趣进行了随意的讨论。这一轮只有两个解决问题的问题。
问题 1
如何找到两个链表的交点?
方法 1 – 使用散列
1)创建一个空的哈希集。
2) 遍历第一个链表,将所有节点的地址插入哈希集中。
3) 遍历第二个列表。对于每个节点,检查它是否存在于哈希集中。如果我们在哈希集中找到一个节点,则返回该节点。
注意:参考方法 7 在以下链接中的实现。
方法 2 – 使用节点数的差异
1) 获取第一个列表中的节点数,设 count 为 c1。
2) 获取第二个列表中的节点数,设 count 为 c2。
3) 获得计数差 d = abs(c1 – c2)
4) 现在从第一个节点遍历更大的列表直到 d 个节点,以便从这里开始两个列表具有相同数量的节点。
5)然后我们可以并行遍历两个列表,直到遇到一个公共节点。 (注意,获取普通节点是通过比较节点的地址来完成的)
我给出了这两种方法,但是面试官希望我使用堆栈来解决这个问题。
所以最终的方法如下。
方法 3 – 使用堆栈
1) 将第一个链表的所有节点的地址堆叠起来。
2) 将第二个链表的所有节点的地址堆叠起来。
3) 并行从两个堆栈中弹出元素并比较地址。
4) 如果地址相同,则继续执行步骤 3。
5) 如果地址不同,则在当前元素之前弹出的元素为交点。
注:应处理所有边境案件。
https://www.geeksforgeeks.org/write-a-function-to-get-the-intersection-point-of-two-linked-lists/
面试官让我用 C 语言编写 Approach 3 的代码。
问题2
这是一个谜。
他编写了一个十二进制系统(也称为 base-12 或打十进制)。假设我的记忆正确,以下是数字系统。
0、1、2、3、A、4、5、6、7、B、8、9
他让我在这个数字系统中找出 A² + 6B + 9 的值是多少。
注意:A² 与 AA 不同。
第 4 轮 – 技术面试
我们只有少数人参加了这一轮比赛,其他人被要求离开。在进行实际的技术面试之前,我和面试官再次就我的目标和兴趣进行了随意的讨论。除了有关操作系统和计算机网络的问题外,还解决了问题。
问题 1
给定一组时间间隔,合并重叠的间隔。
https://www.geeksforgeeks.org/merging-intervals/
问题2
编写一个程序来确定给定的系统是小端还是大端。
实际上,这个问题是在询问操作系统概念后提出的。
第 5 轮 - 人力资源轮
HR问我今天过得怎么样以及面试。之后,他让我介绍一下我自己。他听了我的话,中间还问了一些问题。最后,结果通过安置办公室发送。
尖端:
诚实是最好的政策。虽然听起来很旧,但它确实对我有用。除了我们对问题的解决方案,自信同样重要。
直接从面试官那里寻求反馈。这有助于我们的改进。
带着平安,
通用知识库