最近facebook访问了我们的校园。首先是一个在线回合。7人被列入电话采访的候选名单。然后有两个来自美国的电话采访。
在线回合 给出2个编码问题,时间为75分钟。 1. 有n棵树围成一个圈。每棵树都有与之相关的果实价值。一只鸟可以坐在树上0.5秒,然后他必须移动到邻近的树上。鸟从一棵树移动到另一棵树需要0.5秒。当鸟儿坐在树上时,它得到了水果的价值。我们得到n和m(鸟的秒数)以及树的果实值。我们必须最大限度地提高鸟能收集到的水果总价值。这种鸟可以从任何一棵树开始。 我忘了例子,抱歉:(
2.给你一个基数为58的编码。您必须使用给定的编码将从1到n的所有数字转换为以58为基数的数字。
问题并不难,入围的依据也很奇怪。我的朋友比我早完成了很多,但他没有入围。我想他们看过你的简历和项目。
第一轮电话会议 自我介绍并告诉我你的项目。然后他问了我两个算法问题。
1.为您提供n个间隔的开始时间和结束时间。必须编写一个返回布尔值的函数,该值指示现有间隔集中是否存在重叠间隔。(排序和检查,时间复杂度O(nlogn))
2.有两个稀疏向量(大量的0)。首先告诉我一种表示和存储它们的方法,然后找到点积。 (为了存储它们,我们应该存储那些具有非零值的索引的值和索引,然后直接找到点积)。
第二轮电话会议 面试官不一样。自我介绍并告诉我你的项目。甚至他也问了我两个算法问题。
1 你有一个由n个元素组成的数组,还有一个和。检查数组中的任意两个元素的和是否与给定的和相同。 (预计时间复杂度为O(n)。(使用哈希)
2. 将前面的问题扩展到数组中的3个元素之和,求和到给定的和 .
几点建议:
- 总是解释你在做什么以及为什么。
- 首先解释算法,然后开始编码。
- 如果他给出了一个提示,就接受并使用它。
谢谢 极客。组织
如果你喜欢Geeksforgek,并想贡献自己的力量,你也可以写一篇文章,然后把你的文章发到contribute@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。