力扣hot100 LRU 缓存 有序Map

Problem: 146. LRU 缓存
在这里插入图片描述

文章目录

思路

👨‍🏫 参考题解
在这里插入图片描述

👩‍🏫 参考图解
在这里插入图片描述

💖 Code

⏰ 两操作 时间复杂度: O ( 1 ) O(1) O(1)

class LRUCache
{
	int cap;
	LinkedHashMap<Integer, Integer> cache = new LinkedHashMap<>();

	public LRUCache(int capacity)
	{
		this.cap = capacity;// 初始化容量
	}

	public int get(int key)
	{
		if (!cache.containsKey(key))// 缓存不存在返回 -1
			return -1;
		makeRecntly(key);// 更新访问时间
		return cache.get(key);
	}

//	让 key 重新入 缓存 
	private void makeRecntly(int key)
	{
		int val = cache.get(key);
		cache.remove(key);
		cache.put(key, val);
	}

	public void put(int key, int val)
	{
		if (cache.containsKey(key))
		{
			cache.put(key, val);// 更新 cache 的值,已存在则不增加容量
			makeRecntly(key);
			return;
		}
		if (cache.size() >= this.cap)// 其实 == 就要删除旧元素了,先删后加
		{
			// 用迭代器拿出 keySet 中的第一个 key
			int old = cache.keySet().iterator().next();
			cache.remove(old);// 删除最旧的数据
		}
		cache.put(key, val);
	}
}

相关推荐

  1. 100】146.LRU缓存

    2024-01-26 17:32:02       47 阅读
  2. ---***********LRU 缓存***********

    2024-01-26 17:32:02       52 阅读
  3. 记录)146. LRU 缓存

    2024-01-26 17:32:02       28 阅读
  4. LeetCode刷题——146. LRU 缓存(HOT100)

    2024-01-26 17:32:02       22 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-26 17:32:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-26 17:32:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-26 17:32:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-26 17:32:02       18 阅读

热门阅读

  1. 牛客周赛 Round 29(A B C D E)

    2024-01-26 17:32:02       33 阅读
  2. 【Digester解析XML文件的三种方式】

    2024-01-26 17:32:02       31 阅读
  3. uniapp map自定义气泡窗

    2024-01-26 17:32:02       35 阅读
  4. glog使用方法

    2024-01-26 17:32:02       41 阅读
  5. 如何设计一个可靠UDP

    2024-01-26 17:32:02       29 阅读
  6. Acwing---788.逆序对的数量

    2024-01-26 17:32:02       32 阅读
  7. 常见的网络安全攻击类型

    2024-01-26 17:32:02       40 阅读