Accolite 采访 |设置 1(校内)
Accolite 来到我们的校园招聘。
第一轮笔试:
20 个 MCQ,其中询问了一般 CS 基础问题。还有一篇主观论文,我们必须写 3 个代码。
1. 树的两个节点之间的最大路径和
2. 数组中的多数元素。
3.一些二维数组相关的问题。
他们从大约 180 名学生中选出了 7 名学生参加下一轮比赛。
技术面试第一轮:
1. 假设你得到了几行代码,任何语言都说 C++。您必须设计一个完整的语法检查器。
– 我需要给他一个算法或设计步骤,我将按照这些步骤来制作这个检查器。(大约 1 小时 15 分钟的讨论/建议/更多测试用例/新的边界情况被讨论过,最后他对输出感到满意)
2. 我认为这个问题很容易完成第一轮。他让我编写问题“从链接列表中的最后一个元素中找到第 k 个最小元素”。
技术面试第 2 轮:
面试官有两个:
他们选择了我的主观论文(我在笔试中写的代码)。
1. 他选择了我的多数元素问题,在那个问题中,我使用了 MedianOfMedian 技术。他对这项技术不是很清楚,所以他让我证明这种技术在 O(n) 中工作的复杂性。我也不确定那个时候的证明,但经过 45 分钟的讨论后,他对这项技术感到满意。
2. 他让我给他一个技巧来回答下面的问题:
你得到了一个数组。您必须将偶数放在偶数位或奇数位。首先,我必须告诉我将如何决定要做什么,即使是偶数还是奇数?然后他要求为此设计算法。他要求就地 O(n) 解决方案。
我从未听说过这个问题,所以花了 30 分钟才给出最佳解决方案。一开始我给出了–outplace O(n) 解然后–in place O(n^2) 解–然后一个不正确的O(n) in place one,因为他要求我证明这是错误的,最后我给出了一个正确的解决方案。
最后他要求编写该算法。
技术面试第三轮:
1.他问我P题和NP题的区别。
2.画一个显示P和NP关系的维恩图(我完全错了)
3. 概率题,抛6个硬币,至少5个正面的概率是多少。 (因为有些愚蠢,我又给出了错误的答案)
4. 然后他最后让我设计一个算法,在 n 元泛型树中找到两个节点的 LCA。我做得对,他很满意。
在下一轮 HR 中,提出了一般性 HR 问题。
我认为整个过程有点累积的过程。所有的轮次,即使是书面轮次,在最终选择中都有一定的权重。虽然学生在两轮之间被淘汰了。