设计LRU缓存结构

2020-09-21  本文已影响0人  棉花糖7

这道题想了一天,自己做的只通过90%,不知道错在哪里。

答案用了双向链表

get()函数:先用 iter = mp[ key ], 在map中查找,查找到之后,更新list(也就是在最前面在push一次,然后删除list中旧的值,同时更新mp)

set()函数,同样用iter = mp.find(key),查找map中的值,若能够找到就删除list中旧的值。然后在slist中插入{key,val},更新map中的值

之后判断slist是否大于最大容量,若大于的话就删除slist最后一个元素,同时删除map中的值。

题目 图解 code

题目连接

上一篇 下一篇

猜你喜欢

热点阅读