我申请了在codenation为期两个月的暑期实习。这是一次校园实习招聘。
它包括: 1.编码轮:1:30小时内有3个问题要做,
- 你得到了一个字符串,最后可能会加上一个数字。您需要找出不包括该数字的字符串的长度是否等于该数字。例如:helloworld10,答案为True,因为helloworld由10个字母组成。字符串长度小于10000。(你只需要检查最后5个地方。)
- 这是一个简单的带位掩蔽问题的dp。N个要为N个人选择的东西,你会得到一个NxN矩阵和每个元素的成本,你需要找到一个最大总重量的组合,这样每个人只得到一件东西。
- 这是一个二部图实现问题。只是为了检查图表是否是双向的。它有一个复杂的问题陈述,但问题最终归结为这个。
2.调试回合:这件事发生在skype上,他们要求我们分享屏幕,以消除作弊的机会。我们得到了一个代码,我们被告知它要做什么,我们被要求在最短的时间内以尽可能少的更改调试它。我得到了一个简单的迭代堆排序。我把它改成了递归heapsort,因为只做了两行修改,他问了我几个关于递归和迭代的问题,让我记住斐波那契,还有一些关于系统堆栈和操作系统的问题。
3.第一轮面试——这发生在Skype上,他问我关于我的项目,讨论了方法,我仔细考虑了它们,我实施了它们,我的方法,简言之,一切。然后,他质疑我本可以使用的不同方法,而不是我使用的方法。他问了我一个问题,说我们有k个数组,每个数组由数字组成,每个数组的长度不同。我们需要找到最短的范围,以便范围包括每个数组中至少一个数字。我提出了一个O(n.k.log(max(length))解决方案。他对答案很满意。
4.面试第二轮——这件事发生在Skype上,他询问了我的项目和工作经验。他让我为一个树问题创建一个递归函数,然后让我提出“谷歌地图”的数据结构和实现。我提出了一个图的图,用Dijkstra寻找最短路径。他后来问我关于自平衡树、AVL和八字树的事。
5.采访第三轮——这件事发生在Skype上,他问我关于我的项目。然后他让我考虑一种方法,为一个包含3个整数的结构数组找到一个下界(所有3个整数的下界)。他让我在O(1)时间内查询这个,然后减去整数并重新插入结构中。后来,他让我为文本编辑器想出一些内存和时间复杂度最低的数据结构。我建议使用rope数据结构,然后他让我想些别的东西。所以我提出了一个trie树,它最后有一个向量来跟踪这个单词应该出现的第一个位置。他对我的回答很满意。
6小时一轮——这不是一轮。她上了Skype让我查看邮件,有一封邀请函等着我!!我所能做的就是变得哑口无言,面带微笑
如果你喜欢Geeksforgek,并想贡献自己的力量,你也可以写一篇文章,然后把你的文章发到contribute@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。