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

  • 相关阅读:
    VS code 配置 PySide6的UI开发环境
    Python及PySide6学习网址
    NOIP2021模拟赛10.12 题解
    P2388 阶乘之乘 题解
    P3992 [BJOI2017]开车
    「NOIP2021模拟赛四 B」Polyline 题解
    P7115 [NOIP2020] 移球游戏 题解
    P7114 [NOIP2020] 字符串匹配 题解
    P3391 【模板】文艺平衡树 题解
    致夏天
  • 原文地址:https://www.cnblogs.com/yanernanfei/p/6838019.html
Copyright © 2011-2022 走看看