Meta VO 三轮面试全流程复盘 | ProgramHelp帮助大家快速通关 少走弯路

955次閱讀

刚刚帮助一位同学结束 Meta VO 的面经复盘,节奏还是一如既往的紧凑,时间控制严格,每个问题都要快速理解、分析并给出optional solution,但这位同学在我们的帮助下,整个流程非常顺利,一起来看一下过程吧!

Meta VO 三轮面试全流程复盘 | ProgramHelp帮助大家快速通关 少走弯路

Meta VO 第一轮

与常规的CS Coding VO流程类似,首先是相互自我介绍。然后开始关于简历的BQ环节,问题如下:

  • Tell me about a complex project you have participated in.How did you resolve the technical challenges within it?
  • How did you deal with the tight deadlines?
  • Tell me about most biggest mistake you made and what did you learn from it.

Tips: 准备Meta的BQ时,要深入了解并秉持Meta的五个核心价值观,在回答中体现企业文化,同时使用STAR模型来组织你的回答,选自己真实的故事,提前mock自己的表述是否自然、流畅。

Coding

1. 题目要求是找出最长的公共前缀。先给你一堆字符串,然后找出它们开头最长能共有的一段。

Meta VO 三轮面试全流程复盘 | ProgramHelp帮助大家快速通关 少走弯路

2. 题目要求是判断s是不是t的子序列。给你两个字符串s和t,让你判断s是不是t的子序列。子序列的意思是,你可以从t中按顺序挑选一些字符(可以不连续),拼成s,但是字符的顺序不能乱。

Meta VO 三轮面试全流程复盘 | ProgramHelp帮助大家快速通关 少走弯路

Follow up: 如果有成千上亿个s要你判断是不是t 的子序列(比如S1,S2.,..Sk,k非常大),你怎么优化你的代码,让每次判断更快。

Meta VO 第二轮

第二轮的BQ是讲述一次处理模糊情况的情形并如何克服取得积极结果的经历和讲述一次帮助同伴的经历。

Coding(2道,难度中等)

  • 第一道是嵌套数组题。Clarify的关键信息是深度是不是从第一行开始,需要注意下为空的边界条件。用递归,主函数里套了一个带深度的dfs。DFS 遍历列表需要逐一检查列表中的元素,然后code+ dry run,加起来大概十分钟就可以做完。
  • 第二道是sliding widow,consecutive1的变种,解释思路的时候挺清晰,没什么大问题。

Meta VO 第三轮

第三轮的BQ是讲一讲工作中遇到重大挑战的经历和讲述一次项目中最具挑战性的方面,这里的经历都要坦诚描述, 重点强调自己解决问题的能力和团队合作能力,说明自己扮演的角色以及个人努力获得的成功。

Coding(偏OOD)

  • LRU Cache全设计实现(包含O(1)操作)
  • 讨论扩展版本:如何在高并发下实现线程安全的缓存系统

解题思路:

  • 一开始我用哈希表实现O(1)查找,配合双向链表维护访问顺序。然后执行get操作时通过哈希表定位节点并移至链表头部;对于put操作,先检查键是不是存在,如果存在就更新并移动节点,如果不存在就创建新节点插入头部,最后检查容量,超容就淘汰尾部节点。
  • 在设计高并发线程安全缓存系统的时候,我先采用了读写锁,读操作共享锁支持并发访问,然后通过分段锁降低竞争、写时复制实现无锁读、异步队列处理写请求,最后集成过期清理和监控统计等功能。

如何快速通过 Mata 的面试?

备战Meta 感到压力?找ProgramHelp助你一臂之力!我们为Meta面试提供从辅导到实战的全方位辅导,以丰富的知识储备和强大的问题解决能力,帮助您面试少走弯路,快速通关,轻松拿下Offer,如果你也需要VO面试助攻,面试辅助,面试代面等服务,请与我们联系

author avatar
Alex Ma Staff Software Engineer
目前就职于Google,10余年开发经验,目前担任Senior Solution Architect职位,北大计算机本硕,擅长各种算法、Java、C++等编程语言。在学校期间多次参加ACM、天池大数据等多项比赛,拥有多项顶级paper、专利等。
正文完