据前线“战报”,今年Facebook面试难度简直逆天:开局就是2道hard题,就算直接抄答案也要十来分钟。如果想拼个演技,先用暴力解再进行优化,根本来不及。
让我们来看看这道考倒无数人的FB原题👇
为最近最少使用(LRU)缓存策略设计一个数据结构,它应该支持以下操作:获取数据和写入数据。
get(key) 获取数据:如果缓存中存在key,则获取其数据值(通常是正数),否则返回-1。
set(key, value) 写入数据:如果key还没有在缓存中,则写入其数据值。当缓存达到上限,它应该在写入新数据之前删除最近最少使用的数据用来腾出空闲位置。
最终, 你需要返回每次 get 的数据。
而这道题,前FB资深面试官令狐冲在《九章算法班 2020版》重点讲过。
通过LRU这道题,可以验证面试者的数据结构设计、链表操作和子函数能力,就算做过原题,也可以问很多follow up考察面试者对数据结构的理解程度,怪不得FB一考再考!
<