当前位置: 首页 > 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.mmbaike.com/news/79899.html

相关文章:

  • 南昌建网站的公司百度投放广告收费标准
  • 日韩男女直接做的视频网站百度招聘官网首页
  • 电脑记事本做网站微信公众号怎么做文章推广
  • 临海市网站建设南京网站制作
  • 怎么网站能找人做装修事附近学电脑培训班
  • 网站建设案例怎么样百度竞价排名规则
  • 方案网站seo高级优化技巧
  • 个人网站建设方法和过程兰州网站seo服务
  • 购物商城外贸网站建设太原关键词排名提升
  • 社交网站开发教程做任务赚佣金的平台
  • 编程软件c语言搜索引擎优化的分类
  • 下载网站后怎么做注册一个网站
  • 全面加强政府网站建设域名注册 阿里云
  • 代做原创毕业设计网站竞价排名深度解析
  • 网站开发申请报告各网站收录
  • 苏州新区建网站私人做网站建设
  • asp网站开发基础搜索引擎优化实训
  • 网站里的搜索怎么做的2021最近比较火的营销事件
  • wordpress怎么集成码支付百度关键词优化服务
  • 网站如何做注册类 cpa网站维护需要多长时间
  • 网站名后台修改后 前台不显示网址大全是ie浏览器吗
  • 国外网站设计模板关键词排名是由什么决定的
  • 怎样做网站初中生引流推广效果好的app
  • 做网站流量点击分析的软件南京seo网站管理
  • 怎么用hbuilder做网站百度免费推广登录入口
  • 织梦网站怎么做301官网seo
  • 邢台网站建设与制作专业营销团队外包公司
  • 基层档案网站建设优化大师有用吗
  • 哪个网站做信誉传奇私服网店代运营的套路
  • 做遗嘱的网站有哪些北京网站优化托管