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

网络建站的费用seo优化宣传

网络建站的费用,seo优化宣传,仿木鱼网络网站,腾讯域名怎么建设网站2023-09-24每日一题 一、题目编号 146. LRU 缓存二、题目链接 点击跳转到题目位置 三、题目描述 请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类: LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存i…

2023-09-24每日一题

一、题目编号

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) 的平均时间复杂度运行。

四、解题代码

struct DLinkedNode {int key, value;DLinkedNode* prev;DLinkedNode* next;DLinkedNode(): key(0), value(0), prev(nullptr), next(nullptr) {}DLinkedNode(int _key, int _value): key(_key), value(_value), prev(nullptr), next(nullptr) {}
};class LRUCache {
private:unordered_map<int, DLinkedNode*> cache;DLinkedNode* head;DLinkedNode* tail;int size;int capacity;public:LRUCache(int _capacity): capacity(_capacity), size(0) {// 使用伪头部和伪尾部节点head = new DLinkedNode();tail = new DLinkedNode();head->next = tail;tail->prev = head;}int get(int key) {if (!cache.count(key)) {return -1;}// 如果 key 存在,先通过哈希表定位,再移到头部DLinkedNode* node = cache[key];moveToHead(node);return node->value;}void put(int key, int value) {if (!cache.count(key)) {// 如果 key 不存在,创建一个新的节点DLinkedNode* node = new DLinkedNode(key, value);// 添加进哈希表cache[key] = node;// 添加至双向链表的头部addToHead(node);++size;if (size > capacity) {// 如果超出容量,删除双向链表的尾部节点DLinkedNode* removed = removeTail();// 删除哈希表中对应的项cache.erase(removed->key);// 防止内存泄漏delete removed;--size;}}else {// 如果 key 存在,先通过哈希表定位,再修改 value,并移到头部DLinkedNode* node = cache[key];node->value = value;moveToHead(node);}}void addToHead(DLinkedNode* node) {node->prev = head;node->next = head->next;head->next->prev = node;head->next = node;}void removeNode(DLinkedNode* node) {node->prev->next = node->next;node->next->prev = node->prev;}void moveToHead(DLinkedNode* node) {removeNode(node);addToHead(node);}DLinkedNode* removeTail() {DLinkedNode* node = tail->prev;removeNode(node);return node;}
};

五、解题思路

(1) 双端链表。

http://www.15wanjia.com/news/173813.html

相关文章:

  • 网站内容很少如何做seo天河网站建设集团
  • 网站建设彩铃语ui设计定义
  • 新郑网站开发商务网站的特点
  • 网站在线沟通工具怎么建一个公司运营网站
  • 重庆一般建一个网站需要多少钱了解深圳网站页面设计
  • 中国站长素材网中美关系最新消息2022年
  • 广州网页模板建站镜像网站是怎么做的
  • 网站品牌建设公司企业外包是什么意思
  • 局域网网站制作教程长沙兼职网
  • 江苏自助建站系统哪家好松江网站关键词优化
  • 广西网站建设的公司哪家好wordpress写小说主题
  • 免费注册网站有哪些公司网页免费
  • wordpress 获取时间seo详细教程
  • 网站模板能自己做吗做ps的赚钱的网站有哪些
  • 密云网站开发太原营销型网站
  • 叫别人做网站要注意什么网站做跳转微信打开
  • 个人网站主页点开图片跳到网站怎么做的
  • 在哪个网站做视频好赚钱腾讯学生机wordpress
  • 制作网站的公司怎么样建筑设计研究生考试科目
  • 建设部政务网站网站建设相关的网站
  • 网站建设我们的优势郑州汉狮做网站的大公司
  • 美食网站建设背景上海自助建站系统
  • 做土司的网站免费大型网站
  • 济南网站建设-中国互联wordpress 会员中心插件
  • 网站开发公司前台模板网站的想法
  • 个人网站建设书吉安知名网站建设
  • 福清建设局网站php app网站建设
  • 我看别人做系统就直接网站下载好多公司为啥只做网站 不考虑推广
  • 钓鱼网站下载appwordpress 固定链接插件
  • dedecms做网站有多快苏宁易购电商网站建设需求分析