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

深圳市建设局网站首页南充网站建设迅达网络

深圳市建设局网站首页,南充网站建设迅达网络,网站开发必须要用js,wordpress评论微信通知146. LRU 缓存 请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类#xff1a; LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存int get(int key) 如果关键字 key 存在于缓存中#xff0c;则返回关键字的值#xff0c…146. LRU 缓存 请你设计并实现一个满足 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) 的平均时间复杂度运行。 前言 好题想写一下虽然之前用C写过一次但是不太熟悉c的面向对象也是云里雾里的只会写个函数这次也想熟悉一下golang的container/list。 正文 由于要实现LRU的算法最主要的就是要实现如何存储最近最少使用的Key最合适的就是链表至于根据Key来寻找Value的值自然就是哈希表了。 于是思路就是这样的 Get()方法根据给定的Key在哈希表中查找如果不存在返回-1如果存在则返回对应的val并将我们维护的链表的对应的Key-Value更新到链表的最前面。Put()方法先查找哈希表中是否存储了这一Key如果已经存储则更新Value的值了如果没有存储则先确认缓存的数据是否超出了限制如果没有超出则直接加入哈希表即可并将相应的Key-Value推入到链表的最前面如果超出了则找到链表的尾部找到相应的key值删除哈希表中的对应的Key-Value并删除链表尾部元素再将新的Key-Value加入哈希表和链表前方。 代码如下 type LRUCache struct {capacity intkv map[int]*list.ElementKeyList *list.List }type KV struct {Key intValue int }func Constructor(capacity int) LRUCache {return LRUCache{capacity: capacity,kv: make(map[int]*list.Element),KeyList: list.New(),} }func (this *LRUCache) Get(key int) int {if elem, ok : this.kv[key]; ok {this.KeyList.MoveToFront(elem)return elem.Value.(KV).Value}return -1 }func (this *LRUCache) Put(key int, value int) {if node : this.kv[key]; node ! nil {node.Value KV{Key: key,Value: value,}this.KeyList.MoveToFront(node)return}if this.KeyList.Len() this.capacity {oldest : this.KeyList.Back()this.KeyList.Remove(oldest)delete(this.kv, oldest.Value.(KV).Key)}KeyValue : KV{Key: key, Value: value}elem : this.KeyList.PushFront(KeyValue)this.kv[key] elem }结语 Golang里面有这么一个list真是太棒了~
http://www.w-s-a.com/news/182333/

相关文章:

  • ftp如何修改网站备案号百度云建站
  • 免费做网站空间dede二手车网站源码
  • 网站服务器需要多大设计网站公司开发
  • asp 网站权限设计做网站业务员
  • 做棋牌网站违法嘛网络服务网络推广
  • 专门做推广的网站吗免费建域名网站
  • 在百度做网站株洲网站平台搭建
  • 用node做的网站南宁网站定制开发
  • 做刷单网站犯法吗wordpress depth
  • 潍坊青州网站建设少儿编程app
  • 表白网站制作源代码自己怎么免费做网站网页
  • 开源网站建设是什么工作个人虚拟网站
  • 网站制作的一般过程优化关键词排名公司
  • 如何使用阿里云建设网站网站两边广告
  • 互联网信息服务小红书seo是什么意思
  • 深圳市南山区建设局网站公司简介网页
  • 免费小程序制作软件爱站网站seo查询工具
  • 承接电商网站建设缔烨建设公司网站
  • 网站运营介绍十大国外室内设计网站
  • 网站建设完毕后怎么加后台电影购买网站怎么设计
  • 空间ip地址访问网站音乐分享 wordpress
  • 做网站一单能挣多少wordpress主题文件夹在哪
  • 视频社区app源码台州优化网站
  • 保定高端网站建设做微商好还是开网站好
  • 有什么方法在淘宝发布网站建设设计wordpress评分
  • 自己做的网站怎么爬数据库酷播wordpress
  • 广州哪家做网站还可以黑龙江省建设厅网站的电话
  • 青海省高等级公路建设管局网站国内做led灯网站有
  • 做网站成功建设银行网站网址
  • 自动生成网站上海十大活动策划公司