zoukankan      html  css  js  c++  java
  • LRU缓存策略

    描述:

    为最近最少使用(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)确定结点位置,所有最近被访问的结点放在链表尾部。

  • 相关阅读:
    第一次极限测试效果图-完整四张
    第一次极限测试效果图
    ajax遍历list数据解决方法
    读书笔记1
    读书笔记2
    读书笔记3
    每日学习
    关于根据数据反选checkbox
    zabbix监控kernel.pid_max
    React 学习项目1
  • 原文地址:https://www.cnblogs.com/yanernanfei/p/6838019.html
Copyright © 2011-2022 走看看