首页 > 试题广场 >

LRU缓存机制

[编程题]LRU缓存机制
  • 热度指数:314 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解

设计和实现一个  LRU (最近最少使用) 缓存机制。它应该支持以下操作: 获取数据 get 和 写入数据 put

获取数据 get(key) - 如果密钥 (key) 存在于缓存中,则获取密钥的值(总是正数),否则返回 -1

写入数据 put(key, value) - 如果密钥不存在,则写入其数据值。当缓存容量达到上限时,它应该在写入新数据之前删除最近最少使用的数据值,从而为新的数据值留出空间。

输入描述:

第一行输入缓存容量,包含一个整数N,1≤N≤10。

接下来,每一行是一个put或者get的操作。
若输入一个get + 一个数字,则代表get操作和指定的key;
若输入一个put + 两个数字,则代表put操作后面为key和value,进行put操作。
读到文件结束


输出描述:
输出多行,每一行两个数字表示 缓存中的key 和value。按照访问时间或者插入时间,越早的越先输出。
示例1

输入

2
put 1 1
put 2 2
get 1
put 3 3
get 1

输出

3 3
1 1
读取未知行数的时候,不是回车结尾会出现错误,使用br的ready方法在就绪后计算时间的差值跳出读取的循环才行
发表于 2022-08-18 12:21:51 回复(0)