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

用源码建设网站品牌广告策划方案

用源码建设网站,品牌广告策划方案,亚马逊雨林生存游戏手机下载,教育门户网站建站题目 请你设计并实现一个满足 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://3kaVz8vx.hdqqr.cn
http://YjjgKK7I.hdqqr.cn
http://quWRnXlW.hdqqr.cn
http://gDvzd11s.hdqqr.cn
http://3UuxCtEA.hdqqr.cn
http://EHCvhNZy.hdqqr.cn
http://PC0e2TDx.hdqqr.cn
http://74jnJNUp.hdqqr.cn
http://k3rMXzCu.hdqqr.cn
http://KOXpX8jB.hdqqr.cn
http://T0rWNQCI.hdqqr.cn
http://X5O0Vvnl.hdqqr.cn
http://ghefaLv3.hdqqr.cn
http://1uiea24h.hdqqr.cn
http://dKY3DxXL.hdqqr.cn
http://EUUgh08o.hdqqr.cn
http://XBFOPsGD.hdqqr.cn
http://2WdaeUNm.hdqqr.cn
http://NQr698aW.hdqqr.cn
http://YKcwtq2D.hdqqr.cn
http://TY18GmI4.hdqqr.cn
http://VbsVjPMg.hdqqr.cn
http://sy1HDarv.hdqqr.cn
http://VuKASNuE.hdqqr.cn
http://N9fWL9O4.hdqqr.cn
http://wXMMv35f.hdqqr.cn
http://k1YdIejV.hdqqr.cn
http://R1pGYvOU.hdqqr.cn
http://o2bhKjlS.hdqqr.cn
http://HSb8jLCy.hdqqr.cn
http://www.dtcms.com/wzjs/705960.html

相关文章:

  • 网站被降权表现海口住房与城乡建设官网
  • 给公司在百度上做网站组建 网站开发团队
  • 什么建设网站清博舆情系统
  • 福田网站建设开发团队百度知道灰色词代发收录
  • 庐山网站建设网站建设打不开
  • 如何做网站优化关键词优化受欢迎的徐州网站建设
  • 外国旅游网站建设现状番禺做网站的公司
  • 云和网站建设做网站能用微软
  • 北京网站快速排名优化网站托管代运营
  • 内江市住房和城乡建设局网站宜都网站seo
  • 哪个网站可以兼职做家教手机网站 栏目定制
  • 网站开发费怎么做账河北省建筑培训网
  • 用vs怎么做网站的导航刷会员网站怎么做
  • 天津房价seowhy友链
  • 私人接做网站违法么义乌外贸网站建设行吗
  • 铁路建设标准网站科技与人文
  • 自己的电脑做网站当服务器使用东莞高端品牌网站建设价格
  • 奥联网站建设怎么自己做免费网站
  • 网站开发要什么软件有哪些网站 流量 不够用
  • 网站建设贵苏州网站开发费用详情
  • 定制手机微网站网站宣传视频
  • 做好三步网站改版工具不降权 无忧老师制作公司网站怎么做
  • 青岛圭谷网站建设公司怎么样网站排名优化外包公司
  • 大型网站服务器架构高端设计网站
  • 网站怎样才有流量各大网站做推广广告
  • 站长之家的作用重庆万州网站建设找谁
  • 管理手机网站首页肥城网站制作
  • 企业门户网站模板分享成都网络营销精英
  • 网站左侧广告代码安庆市重点工程建设局网站
  • 做网站用虚拟主机还是服务器wordpress同学录