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

南阳做网站优化的公司创建全国文明城市活动

南阳做网站优化的公司,创建全国文明城市活动,甘肃省住房城乡建设部网站,电子杂志制作app请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类: LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存 int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返回 -1 …

请你设计并实现一个满足 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) 的平均时间复杂度运行。

解题思路

看的题解,双向链表+哈希表+假链表头尾

AC代码

class DLinkedNode:def __init__(self, key=0, value=0):self.key = keyself.value = valueself.prev = Noneself.next = Noneclass 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:# 如果 key 不存在,创建一个新的节点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:# 如果 key 存在,先通过哈希表定位,再修改 value,并移到头部node = self.cache[key]node.value = valueself.moveToHead(node)def addToHead(self, node):node.next = self.head.nextnode.prev = self.headself.head.next.prev = nodeself.head.next = nodedef removedNode(self, node):node.prev.next = node.nextnode.next.prev = node.prevdef moveToHead(self, node):self.removedNode(node)self.addToHead(node)def removeTail(self):node = self.tail.prevself.removedNode(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.sczhlp.com/news/55383/

相关文章:

  • 网站建设技术方案wordpress图片防盗插件
  • 微商自己做网站wordpress瀑布式导航
  • 网站版面特点pdf如何放在WordPress页面
  • 中通建设计院第四分公司网站wordpress 托管
  • 网站建设与推广王钊培训报名
  • 外贸网站定制网站优化制作公司代理
  • 焦作专业网站建设费用小清新网站设计
  • 网站开发都需要学什么成品网站灬1688
  • 沧州商城网站开发设计怀柔建设网站
  • 手机网站模板免费下载网站建设佰金手指科杰二七
  • 个人如何做一个网站高德地图无目的地导航
  • 营销型网站建设方法做网站要注意的
  • 定制鞋子哪个网站好苏州哪里做网站好
  • 飘仙建站论坛酒店网站 方案
  • 公司做零申报在哪个网站上网站主题推荐
  • 网站恶意攻击国内ui设计公司
  • 莘庄做网站昆明网站建设教学视频
  • 苏州园区做网站动漫制作专业就业方向和前景
  • 现在的那家做网站比较好一些呢免费在线自助建站
  • 暑假最后一周总结
  • 南昌做网站哪家最好wordpress now
  • 企业网站开发培训吉安市规划建设局网站
  • 网站阶段推广计划求个网站或者app
  • 网站美工怎么做郑州网站顾问热狗网
  • 网站备案修改域名ip免费微信小程序免费制作平台
  • 网站数据库怎么做同步吗什么网站可以做线上邀请函
  • 怎么网站做二维码网站访问速度
  • 适合小型网络公司的建站方式可以为百度搜索关键词优化
  • 上海徐汇网站建设宁波建设规划网
  • 基础知识dom属性修改