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

哪里有做效果图的网站西安网站关键词优化费用

哪里有做效果图的网站,西安网站关键词优化费用,如何利用源码做网站,网站留言如何做的LRU缓存是一种满足最近最少使用约束的数据结构。我们可以用一个简单的例子来理解:假设你有一摞书,最多只能放capacity本。当你需要找一本书时,如果书在摞中,就返回它的版本(即key-value);如果不…

        LRU缓存是一种满足最近最少使用约束的数据结构。我们可以用一个简单的例子来理解:假设你有一摞书,最多只能放capacity本。当你需要找一本书时,如果书在摞中,就返回它的版本(即key-value);如果不在,就返回-1。当你想放入一本新书时,如果这本书已经存在,就更新它的版本号;如果不存在,就把新书放在最上面。如果书的数量超过了capacity,就把最下面那本书移出。

                                                        

        那么,在这个例子中,我们主要用到了哪些操作呢?又该用什么数据结构来实现呢?由于题目要求get()和put()的时间复杂度为O(1),并且需要同时存放key-value,还要删除最久未使用的元素,因此可以使用双向链表来解决。具体来说,我们主要用到了以下操作:

        1.删除

        将一个节点删除

        2.将节点放在最前面

 

        3.快速找出要找的节点

        使用哈希表,用key与节点作映射

 

class Node {
public:int key;int value;Node *prev;Node *next;Node(int k = 0,int v = 0):key(k),value(v){};
};class LRUCache {
public:int capacity = 0;Node *dummy;unordered_map<int,Node*> key_to_node;//删除节点void remove(Node *x) {x->prev->next = x->next;x->next->prev = x->prev;}//将节点放在最前void push_front(Node *x) {x->prev = dummy;x->next = dummy->next;x->next->prev = x;x->prev->next = x;}//获取节点Node* getNode(int key) {auto it = key_to_node.find(key);if (it == key_to_node.end()) {return nullptr;}Node *node = key_to_node[key];remove(node);push_front(node);return node;}LRUCache(int capacity) : capacity(capacity),dummy(new Node()) {dummy->next = dummy;dummy->prev = dummy;}int get(int key) {Node *node = getNode(key);return node ? node->value : -1;}void put(int key, int value) {Node *node = getNode(key);if (node) {node->value = value;return;}key_to_node[key] = node = new Node(key,value);push_front(node);if (capacity < key_to_node.size()) {//最久未使用节点Node *back_node = dummy->prev;key_to_node.erase(back_node->key);remove(back_node);//释放内存delete back_node;}}
};

        时间复杂度:O(1)

        空间复杂度:O(min(p,capacity),p为put的次数

http://www.dtcms.com/wzjs/267130.html

相关文章:

  • 网站空间地址郑州网站优化外包
  • 网站的总体风格包括百度浏览器
  • seo网站推广实例网站设计与实现毕业设计
  • 深圳设计研究院总院优化王
  • 商城网站开发那家好网站建设找哪家公司好
  • 2016网站设计规范推广策划方案
  • 广州网站建设中心国内免费二级域名建站
  • 石家庄招标信息网济南优化seo公司
  • 个人网页模板网站武汉seo报价
  • 外贸网站做推广seo关键词优化软件手机
  • 北京招聘网站设计师百度seoo优化软件
  • 廊坊seo淄博seo网站推广
  • 聊城高端网站制作百度视频免费下载
  • 免费广告语设计生成器百度seo入驻
  • wordpress集成当面付郑州seo代理外包公司
  • 网站主机做外挂抖音seo排名软件
  • 最好的网站建设免费的网络营销概述ppt
  • wordpress做视频播放网站网络市场调研的方法
  • 抚州网站seo最快新闻资讯在哪看
  • 北京师范大学学风建设专题网站aso优化前景
  • 营销型网站建设项目需求表北京网络seo推广公司
  • 常州市网站制作营销咨询顾问
  • 我找伟宏篷布我做的事ko家的网站seo排名推广工具
  • 建设机械网站热线电话百度人工服务电话
  • 营销型网站套餐百度搜索指数是怎么计算的
  • 邢台各种类型网站建设售后完善2022年seo还值得做吗
  • 商城网站优化方案上海网络营销上海网络推广
  • 无锡市建设工程质监站网站长沙网站公司品牌
  • 济南公积金网站百度seo和谷歌seo有什么区别
  • 临沂兰山建设局网站百度推广工作怎么样