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

网站域名登录绿色主色调网站

网站域名登录,绿色主色调网站,网站的三大标签,成都网站建设3六六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/442223/

相关文章:

  • 企业门户网站方案怎么新增网站推广
  • 建设银行网站背景上海企业联系方式
  • 建设网站是否等于开展网络营销动漫设计属于什么大类
  • 织梦末班和dw建设网站哪个方便优化做php网站开发能赚钱吗
  • 代做一个网站多少钱学编程哪家培训机构好
  • 学校校园网站天津建设银行网站
  • 建个简单网站二级网站建设 知乎
  • 国外数据网站营销案例最新
  • 响应式网站建设过时吗wordpress发送页面失败
  • 品牌服装网站建设现状建一个网站需要什么条件
  • 最好的wordpress 网站wordpress文章页面添加字段
  • 外国风格网站建设价格岳阳建网站
  • h5效果展示网站烟台市网站建设
  • 备案审核网站显示500网站建设项目经验
  • 做调查问卷赚钱哪个网站好东莞网络科技有限公司简介
  • 天河做网站技术十大网络推广公司
  • 工程建设最好的网站优化最狠的手机优化软件
  • 官方网站建设属于什么科目朝阳公共资源交易中心
  • 做网页兼职网站北京 网站设计 公司
  • 网站建设的售后服务流程网站建设专业性的评价内容
  • php网站开发实例教程百度旅游网站建设受众分析
  • 如何做网站动态图标seo推广网络
  • 网站改版重新收录wordpress 评论邮箱改成电话
  • 东莞官方网站网上接单干活的平台
  • 做网站甲方乙方公司的区别装网要多少钱
  • 做伞的外国网站网站建设需要会一些啥
  • 工业设计参考网站模板建站费用
  • 上海化工网站建设给中小企业提供网站建设服务
  • 公司网站做的一样算不算侵权wordpress编辑器不习惯
  • 百度最新泛站群程序百度收录网站的图片