Facebook 面试问题
根据 Facebook 的官方页面,以下是编码期望。
- This takes place in an online collaborative editor shared between you and the interviewer (or on the whiteboard if you do the initial interview in person).
- You are given one or more coding questions to complete in this editor. We ask questions that are short enough to explain in a few minutes and to solve in 10-30 minutes.
- In this section we try to understand your approach to problem solving.
- We typically don’t ask trick or estimation questions (we don’t care how many ping pong balls can be fit in Sea World).
- You could be asked to solve a problem in any way you choose, and then the interviewer could add further constraints or requirements.
以下是来自同一 Facebook 官方页面的提示
编码面试提示:
- 大声思考:我们非常关注您解决问题的方式,这与获得正确答案同样重要。大声思考可以让面试官深入了解你的思考过程,也可以帮助他们跟随你的解决方案。此外,它允许他们在需要时给出提示。
- 找一个好的面试地点:选择一个安静的地方,确保你有良好的互联网连接和强大的电话信号。耳机将帮助您腾出双手进行编码。
- 说清楚:确保你说的清楚,同样,如果你听不清面试官的声音,让他们知道,这样他们就可以适应了!你不想浪费整个面试试图了解对方。
- 使用您最擅长的编程语言:正确及时地编写解决方案很重要,因此请使用您最熟悉的语言。
- 有效地管理你的时间:花一些时间找出问题的理想解决方案。不要太快地强制使用想到的第一个解决方案。如果您无法在合理的时间内找到更好的解决方案,请开始编写一个可行的解决方案,然后进行迭代和改进。有些面试没有任何编码就结束了,因为受访者找不到理想的解决方案。最好有非最优但有效的代码,而不仅仅是一个想法。一旦你有了一个可行的解决方案,你就可以尝试提高它的效率、代码设计或它的任何其他方面。
- 分享你的推理:确保你可以谈论你的解决方案;您可能会被要求解释它们。工程就是权衡取舍,所以要准备好讨论它们。
- 自己查找并修复错误:不要等待面试官为您找到它们。
- 使用给你的提示:通常,面试官对问题非常了解,知道如果你遇到困难,接下来哪些提示会帮助你。
重要资源:
- 最近的 Facebook 面试经历
- Facebook 练习题。
- 如何准备 Facebook 黑客杯?
以下是 Facebook 采访中提出的一些问题。
简单级别
- 将介于 1 到 3999 之间的十进制数转换为罗马数字
- 找到所有零和的三元组
- 所有元素都是斐波那契数的最大子集
- 使用字符串中两个数字之间的“+”或“*”符号计算最大值
- 将三元表达式转换为二叉树
- 将罗马数字转换为 1 到 3999 之间的小数
- 计算差异等于 k 的所有不同对
- 解码递归编码为计数后跟子字符串的字符串
- 查找字符串是否为 K-Palindrome |设置 2
- 查找二叉树的最小深度
- 找到给定总和的子数组 |第 1 组(非负数)
- 给定两个未排序的数组,找到总和为 x 的所有对
- 贪心算法 |第 1 组(活动选择问题)
- 看和说序列
- 总和大于给定值的最小子数组
- 添加两个二进制字符串的程序
- 按排序顺序重新排列字符串,后跟整数和
中等水平
- 困惑 |第 2 组(使用特里)
- 计算给定数字序列的可能解码次数
- 原地旋转方阵 90 度 |设置 1
- 直方图中的最大矩形区域 |设置 2
- 具有至少 k 个数字的最大和子数组
- 乘以表示为字符串的大数
硬级别
- 整数流中的中位数(运行整数)
- 在 k 个排序数组中找到第 m 个最小值
- 通配符匹配