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

一个人可做几次网站备案网站怎么无法访问

一个人可做几次网站备案,网站怎么无法访问,湖南网站推广优化,广州网络营销产品代理leetcode: LRU 缓存 LRU 全称为 Least Recently Used#xff0c;最近最少使用#xff0c;常常用于缓存机制#xff0c;比如 cpu 的 cache 缓存#xff0c;使用了 LRU 算法。LRU 用于缓存机制时#xff0c;关键的是当缓存满的时候有新数据需要加载到缓存的#xff0c;这个…leetcode: LRU 缓存 LRU 全称为 Least Recently Used最近最少使用常常用于缓存机制比如 cpu 的 cache 缓存使用了 LRU 算法。LRU 用于缓存机制时关键的是当缓存满的时候有新数据需要加载到缓存的这个时候需要淘汰谁的问题。 如下图所示表示 LRU 算法的过程。假如有一个缓存共有 4 个存储空间按访问时间进行排序最左边的存储空间存储的是最近访问的数据最右边的存储空间存储的是最长时间没有访问的数据。 1一开始缓存是空的这个时候向缓存中放入一个数据 100100 放到最左边的存储空间 2向缓存中放入一个数据 50此时缓存有空余空间所以将已有的数据向后移动将 50 放到缓存的最左边 3向缓存中放入数据 500, 步骤与上一步相同 4向缓存中放入数据 1000步骤与上一步相同 5读取数据 100读取之后 100 就是最后访问的数据了所以将 100 移到缓存的最左边其它数据依次向后移动 6向缓存中放入数据 1此时缓存是满的所以需要先淘汰一个数据从访问时间来看最后一次访问 50 的间隔时间最长也就是排在最右边的数据所以将 50 淘汰其它数据向后移动将新数据 1 放入最左边的位置 如下是题目描述题目的最后要求 get() 和 put() 的时间复杂度都要是 O(1) 的。使用数组来表示缓存难以满足 O(1) 的要求因为在 put 或者 get 的时候会引起数组数据的移动数组中数据的移动时间复杂度是 O(n) 的。所以需要使用链表来表示缓存当访问一个数据的时候需要将当前这个数据从原来的位置上删除然后加到链表的头部删除一个节点的话需要将这个节点的前一个节点和下一个节点连接起来如果使用单向链表的话那么只能找到这个节点的下一个节点找不到上一个节点所以需要使用双向链表。 1使用双向循环链表来表示缓存 2为了满足时间复杂度是 O(1) 的要求使用 data_addr_ 数组来保存节点的地址数组的下标是 key题目中说明了 key 的取值范围是 [0, 10000]所以可以使用一个数组来表示。使用 map 也不能保证时间复杂度是 O(1) 的map 一般使用红黑树来实现时间复杂度是 O(logn) 的。把数组的下标当 key数组元素的值就是值数组本省也可以当做一个简单的 map 来使用。 3当 put 数据时要进行判断现在缓存是不是满了如果满的话需要删除最久没有访问的数据head_-next 保存最新访问的数据head_-prev 保存最久没有访问的数据 struct Node {int key;int value;struct Node *next;struct Node *prev; };class LRUCache { public:LRUCache(int capacity) {capacity_ capacity;head_ new Node();head_-next head_;head_-prev head_;}int get(int key) {Node *node data_addr_[key];if (node nullptr) {return -1;}ListUnLink(node);ListLinkHead(node);return node-value;}void put(int key, int value) {if (data_addr_[key] ! nullptr) { Node *node data_addr_[key];ListUnLink(node);node-value value;ListLinkHead(node);} else {Node *new_node new Node();new_node-key key;new_node-value value;new_node-next nullptr;new_node-prev nullptr;if (count_ capacity_) {Node *to_delete head_-prev;ListUnLink(to_delete);data_addr_[to_delete-key] nullptr;delete to_delete;count_--;}ListLinkHead(new_node);data_addr_[key] new_node;count_;}}void ListLinkHead(struct Node *ele) {ele-next head_-next;ele-next-prev ele;head_-next ele;ele-prev head_;}void ListUnLink(struct Node *ele) {ele-prev-next ele-next;ele-next-prev ele-prev;}private:int capacity_ 0;int count_ 0;Node *data_addr_[10001] {nullptr};struct Node *head_ nullptr;};
http://www.dnsts.com.cn/news/123944.html

相关文章:

  • 网站建设需要自备什么wordpress 文件下载插件
  • 男人和女人做污的视频网站网站建设情况说明
  • 建立网站需要多少钱怎么样网络营销策划技巧
  • 网站开发入门ppt植物提取网站做的比较好的厂家
  • 公司网站建设建议沈阳商城网站开发
  • 国外网站设计公司网站建设能
  • c2c模式的网站有哪些网站建设制作公司
  • vs2017 网站开发大连市招标网公示
  • 元素网站国内做外贸如何访问外国网站
  • 专业高端网站设计首选推广项目
  • 工信部网站用户名腾讯域名服务商
  • 新版织梦腾讯3366小游戏门户网站模板源码网站建设赚钱吗
  • 石材石料网站搭建教程网络科技公司网站源码
  • 用app怎么样建网站做网站的人叫什么
  • 网站建设介绍大全个人网络销售平台
  • 废橡胶网站建设wordpress怎么置顶文章
  • 国外互联网科技网站2021年中国十大电商平台排名
  • 网站logo是什么重大军事新闻最新消息
  • 酒泉网站建设优化哪些网站可以做图片链接
  • 旅游建设投资公司中网站云主机 做网站
  • 网站外网访问怎么做路由器端口映射国外好用的免费服务器
  • 在线设计 网站源码广元做开锁网站
  • jeecms做企业网站零基础做网站教程
  • 网络公司做的网站根目录在哪asp商业网站源码
  • 企业网站有哪些类型郴州新网手机版
  • 全国最大的网站建设公司排名西安市城市建设管理局网站
  • 个人做电影网站合法吗贵州建设职业技术学院报名网站
  • 怒江网站制作成都网站推广哪家专业
  • 网站常见的风格建设官方网站需要注意什么
  • 购物网站哪个最好美容类网站模版