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

源汇区建设局网站西宁电子商务网站建设

源汇区建设局网站,西宁电子商务网站建设,wordpress官方免费主题,网页广告设计go语言实现LRU Cache 题目描述详细代码 题目描述 设计和构建一个“最近最少使用”缓存,该缓存会删除最近最少使用的项目。缓存应该从键映射到值(允许你插入和检索特定键对应的值),并在初始化时指定最大容量。当缓存被填满时,它应该删除最近最…

go语言实现LRU Cache

  • 题目描述
  • 详细代码

题目描述

设计和构建一个“最近最少使用”缓存,该缓存会删除最近最少使用的项目。缓存应该从键映射到值(允许你插入和检索特定键对应的值),并在初始化时指定最大容量。当缓存被填满时,它应该删除最近最少使用的项目。

它应该支持以下操作: 获取数据 get 和 写入数据 put 。

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

详细代码

type LRUCache struct {capacity   intm          map[int]*Nodehead, tail *Node
}type Node struct {Key       intValue     intPre, Next *Node
}func Constructor(capacity int) LRUCache {head, tail := &Node{}, &Node{}head.Next = tailtail.Pre = headreturn LRUCache{capacity: capacity,m:        map[int]*Node{},head:     head,tail:     tail,}
}func (this *LRUCache) Get(key int) int {// 存在,放到头if v, ok := this.m[key]; ok {this.moveToHead(v)return v.Value}// 不存在,返回-1return -1
}func (this *LRUCache) Put(key int, value int) {// 已经存在了if v, ok := this.m[key];ok{v.Value = valuethis.moveToHead(v)return }if this.capacity==len(this.m){rmKey := this.removeTail()delete(this.m ,rmKey)}newNode := &Node{Key: key, Value: value}this.m[key] = newNodethis.addToHead(newNode)
}func (this *LRUCache) moveToHead(node *Node) {this.deleteNode(node)this.addToHead(node)
}func (this *LRUCache) deleteNode(node *Node) {node.Pre.Next = node.Nextnode.Next.Pre = node.Pre
}func (this *LRUCache) addToHead(node *Node) {// 先让node位于现存第一位元素之前this.head.Next.Pre = node// 通过node的next指针让原始第一位元素放到第二位node.Next = this.head.Next// 捆绑node和head的关系this.head.Next = nodenode.Pre = this.head
}func (this *LRUCache)removeTail()int{node := this.tail.Prethis.deleteNode(node)return node.Key
}/*** Your LRUCache object will be instantiated and called as such:* obj := Constructor(capacity);* param_1 := obj.Get(key);* obj.Put(key,value);*/
http://www.yayakq.cn/news/191724/

相关文章:

  • 做网站用什么语言开发高端建设网站建设
  • 全网vip视频网站建设免费企业信息查询网站
  • 网站建设策划解决方案网站关键词多少个最好
  • 织梦网站程序安装教程网站建设古典风格
  • 莆田个人外贸网站建设内账免费的财务软件
  • 自动化培训网站建设北京网站开发哪好
  • 电子商务网站建设的实训心得上海专业做网站的公司
  • ps做网站原形毕节网站网站建设
  • cco网站素材做ppt好的模板下载网站
  • 好的网站页面专用车网站建设价格
  • 网站被做301常用的网页编辑软件
  • 《网站建设验收报告》奉城网站建设
  • 深圳商业网站建设哪家网络营销外包专员
  • 网站备案导致网站被k网站开发案例详解下载
  • 郴州北京网站建设如何做app 的模板下载网站
  • 用wordpress仿a站网页设计培训零基础
  • 经典的响应式布局网站家具行业网站建设
  • 珠海网站建设方案优化专升本需要考些什么科目
  • 徐州建设局网新网站山东手机在线app
  • 伍佰亿营销型网站网站地址和网页地址区别
  • 深圳网站建设 贝尔利网站建设模板平台
  • wordpress网站管理插件网页微信二维码怎么扫
  • 简述网站规划的一般步骤做问卷兼职有哪些网站
  • 手机网站生成app软件做网站 提交源码 论坛
  • 延安市建设工程交易中心网站淮南微信网站建设
  • 政协网站建设方案营销云产品
  • 江苏城乡建设局网站wordpress htaccess 文件位置
  • 广州公司网站wordpress 黑条
  • 网页制作和网页制作设计seo站内优化和站外优化
  • 营销型网站建设要多少钱交网站建设域名计入什么科目