据前线“战报”,今年 Facebook 面试难度简直逆天:开局就是 2 道 hard 题,就算直接抄答案也要十来分钟。如果想拼个演技,先用暴力解再进行优化,根本来不及。
让我们来看看这道考倒无数人的 FB 原题👇
为最近最少使用( LRU )缓存策略设计一个数据结构,它应该支持以下操作:获取数据和写入数据。
get(key) 获取数据:如果缓存中存在 key,则获取其数据值(通常是正数),否则返回-1 。
set(key, value) 写入数据:如果 key 还没有在缓存中,则写入其数据值。当缓存达到上限,它应该在写入新数据之前删除最近最少使用的数据用来腾出空闲位置。
最终, 你需要返回每次 get 的数据。
而这道题,前 FB 资深面试官令狐冲在**《九章算法班 2020 版》**重点讲过。
通过 LRU 这道题,可以验证面试者的数据结构设计、链表操作和子函数能力,就算做过原题,也可以问很多 follow up 考察面试者对数据结构的理解程度,怪不得 FB 一考再考!
目前正值秋招,大家的时间已经非常紧张了,如果按照常规方法去刷题,时间是肯定不够用的!
因此,**《九章算法班 2020 版》**精选了 100 道最有代表性的面试题目,每个题做完都相当于啃下 3-5 道类似题,你刷 100 道,胜过别人刷 300 道!
就算题目做出来了,面试还是有可能会跪,你的代码质量也是影响面试评价的关键因素。
**因为越是高级别的面试官,越在意你的代码质量。**如果代码质量太差,面试官甚至可能直接给出 No Hire 。
令狐老师在九章算法班反复强调,代码不是写出来就可以通过面试的。面试中必须展示出优良的代码质量( Coding Quality ),否则就很容易 GG 。想要拿到大厂面试的 Hire 和 Strong Hire 评价,代码质量优秀是基本要求。
因此,令狐老师总结了快速提高 Coding Quality 的 12 个技巧,将在试听课中深入讲解!
① Coding Style
• 二元运算符两边加空格,单元运算符不加空格 • 花括号和 for, if 之间要加空格(Java),圆括号和 if 之间要加空格 • 用空行分隔开不同的逻辑块 • 逗号后面加空格
② Readability
• 函数名和变量名用 1-2 个单词作为名称 • 确保一个函数内部不超过 3 层缩进( indention ) • 多用子函数来减少入口函数的代码量 • 多用 continue 少用 if
③ Bug Free
• 不管有没有可能出问题,都要对入口函数的参数进行异常检测 • 访问一个下标的时候,一定要确保这个下标不会越界 • 访问一个对象的属性或者方法时,一定要确保这个对象不是空 • 不用全局变量
为了应对秋招,令狐老师爆肝了 1 个月,将课程由原来的 9 章,扩增至 43 章( 18 课时直播课+34 课时互动课),还搭配了今年的大厂高频面试题,目标是用 1 个月的时间,帮助学员冲刺大厂 offer 。
作为九章算法开设的第一门也是最经典的一门课程,**《九章算法班 2020 版》**一直享有良好口碑。如果你在短时间内要冲刺大厂算法笔试,或是想进一步夯实自己的算法基础,一定不能错过这门课!