首页 > 其他 > 详细

LRU缓存策略

时间:2017-05-10 21:10:49      阅读:328      评论:0      收藏:0      [点我收藏+]

描述:

为最近最少使用(LRU)缓存策略设计一个数据结构,它应该支持以下操作:获取数据(get)和写入数据(set)。

获取数据get(key):如果缓存中存在key,则获取其数据值(通常是正数),否则返回-1。

写入数据set(key, value):如果key还没有在缓存中,则写入其数据值。当缓存达到上限,它应该在写入新数据之前删除最近最少使用的数据用来腾出空闲位置。

第一次提交:编译警告

Solution.java:36: error: cannot find symbol
return map.get(key).val;
^
symbol: variable val
location: class Solution.Node
Solution.java:49: error: cannot find symbol
map.get(key).val = value;
^
symbol: variable val
location: class Solution.Node
2 errors

第二次提交:同上。

第三次提交:class Node 中属性为value,然而class Node 的构造方法中用的却是 this.val = val

第四次提交:Ac

面对这道题时没有思路,主要参考这个帖子 http://blog.csdn.net/zsjmfy/article/details/53404608。

采用双向链表存储结点,结点中包含键值和指向前驱节点和后继结点的引用;map中存储 key 和 结点,通过map.get(key)确定结点位置,所有最近被访问的结点放在链表尾部。

LRU缓存策略

原文:http://www.cnblogs.com/yanernanfei/p/6838019.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!