当前位置: 首页 > wzjs >正文

仿爱范儿网wordpress主题站内优化seo

仿爱范儿网wordpress主题,站内优化seo,专做婚纱店设计网站,阿里云网站建设的步骤过程题目 请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类: LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存 int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返…

题目

请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。
实现 LRUCache 类:
LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存
int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返回 -1 。
void put(int key, int value) 如果关键字 key 已经存在,则变更其数据值 value ;如果不存在,则向缓存中插入该组 key-value 。如果插入操作导致关键字数量超过 capacity ,则应该 逐出 最久未使用的关键字。
函数 get 和 put 必须以 O(1) 的平均时间复杂度运行。

示例:

输入
[“LRUCache”, “put”, “put”, “get”, “put”, “get”, “put”, “get”, “get”, “get”]
[[2], [1, 1], [2, 2], [1], [3, 3], [2], [4, 4], [1], [3], [4]]
输出
[null, null, null, 1, null, -1, null, -1, 3, 4]

解释
LRUCache lRUCache = new LRUCache(2);
lRUCache.put(1, 1); // 缓存是 {1=1}
lRUCache.put(2, 2); // 缓存是 {1=1, 2=2}
lRUCache.get(1); // 返回 1
lRUCache.put(3, 3); // 该操作会使得关键字 2 作废,缓存是 {1=1, 3=3}
lRUCache.get(2); // 返回 -1 (未找到)
lRUCache.put(4, 4); // 该操作会使得关键字 1 作废,缓存是 {4=4, 3=3}
lRUCache.get(1); // 返回 -1 (未找到)
lRUCache.get(3); // 返回 3
lRUCache.get(4); // 返回 4

代码

思路中等难度,但是细节很多

class DLinkedNode:def __init__(self, key=0, value=0):self.key = keyself.value = valueself.prev = Noneself.next = None
class LRUCache:def __init__(self, capacity: int):self.cache = dict()self.head = DLinkedNode()# 创建虚拟头节点self.tail = DLinkedNode()# 创建虚拟尾节点self.head.next = self.tailself.tail.prev = self.headself.capacity = capacityself.size = 0def get(self, key: int) -> int:if key not in self.cache:return -1node = self.cache[key]# 查询self.moveToHead(node)# 移动到头部return node.valuedef put(self, key: int, value: int) -> None:if key not in self.cache:# 不存在node = DLinkedNode(key,value)# 创建新节点self.cache[key] = node# 添加到字典中self.addToHead(node)# 添加到链表头部self.size += 1if self.size > self.capacity:# 如果超出容量就需要移除尾节点removed = self.removeTail()self.cache.pop(removed.key)self.size -= 1else:#存在node = self.cache[key]# 查询节点node.value = value # 更新节点值self.moveToHead(node) # 移动到链表头部def addToHead(self,node):node.prev = self.headnode.next = self.head.nextself.head.next.prev = nodeself.head.next = nodedef removeNode(self, node):node.prev.next = node.nextnode.next.prev = node.prevdef moveToHead(self, node):self.removeNode(node)self.addToHead(node)def removeTail(self):node = self.tail.prevself.removeNode(node)return node# Your LRUCache object will be instantiated and called as such:
# obj = LRUCache(capacity)
# param_1 = obj.get(key)
# obj.put(key,value)
http://www.dtcms.com/wzjs/411221.html

相关文章:

  • 建设网站要做的工作内容优化关键词排名推广
  • 山东网站搭建有限公司百度商城app
  • 江门网站制作推广公司运营模式
  • 郑州那家做网站便宜常见的网站推广方法有哪些
  • 哪些网站需要做分享按钮友情链接检测的特点
  • 做办公家具在哪个网站推销好sem竞价推广代运营
  • 网站建设的资源整合与系统设计宣传平台有哪些
  • 网站页脚怎么做廊坊seo优化
  • 常见的域名seo是什么职位的简称
  • 用wordpress做网站教程快速优化seo软件推广方法
  • 深圳品牌做网站产品宣传推广方式有哪些
  • 怎么做系统软件网站百度竞价怎么开户
  • 杭州网站建设那家好优化推广网站怎么做
  • html网站后台管理系统外包seo服务口碑好
  • 电商建设网站客户引流的最快方法是什么
  • 新建的网站怎么做seo优化什么平台引流最快
  • 建行国际互联网网站优化搜索引擎
  • 政府网站栏目建设反馈意见搜索热门关键词
  • linux下可以用wordpress武汉外包seo公司
  • 香港空间做的网站接受大陆监管么seo外包优化
  • 黔南住房和城乡建设委员会网站济南专业做网站
  • 网站建设服务怎么样seo项目是什么
  • 学做网站要多久年度关键词
  • 网站建设 app开发网站邯郸网站建设优化
  • 网站开发纠纷案外贸建站服务推广公司
  • 水利部建设与管理司网站长沙seo关键词排名
  • 小地方网站建设公司网站优化排名首页
  • 中小型企业查询河北百度seo
  • 网站建设费发票名称百度app客服人工电话
  • 手机上免费自己做网站湖南企业竞价优化首选