Tower Research LLC 面试经历 | Set 1 (电话实习)
1. 简要说明夏季完成的一项研究项目。
2.算法:
给出了无限的数字流。流在任意点停止。使用 O(1) 空间以相等的概率返回到目前为止读取的任意数量的流。
3. 基于知识:
(确定候选人是否完成了数据结构和算法课程。)
给出了一个加权的无向图,其中指定了两个顶点。目标是确定两个顶点之间的最短路径。有人询问是否存在任何算法。
(候选人观察到 Dijsktra 的算法是解决这个问题的合适算法。)
面试官继续要求详细解释算法和时间复杂度。
4. 概率论:
给定一个大小为 n 的数组,返回最大元素。
(候选人演示了一个 O(n) 时间算法,其中一个变量存储最大值。数组被串行读取,并且每当找到一个值大于该变量值的元素时更新该变量。)
给出了一个包含不同数字的大小为 n 的数组。元素可以以相等的概率处于任何排列中。
在上面解释的用于找到最大元素的 O(n) 算法中,包含最大元素的变量在数组的传递过程中被多次更新。通过数组的传递,找到变量上更新(更改)总数的期望值。
5.博弈论:
描述了一个两人游戏,其中每个玩家可以从 1 到 10 中任意选择任何数字。目标是在您(玩家)选择一个数字的位置结束,使得您和对手选择的所有数字的总和(包括您最后选择的数字)为50。
找到一个成功的策略,如果它存在的话。
该策略还应包括您是先玩还是第二玩的信息。
6.数学谜题:
给定一个球体,找出可以放置在球体表面上的最大点数,使得所有点彼此等距。
解释解决方案。