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

免费中文网站模板下载百度小程序关键词优化

免费中文网站模板下载,百度小程序关键词优化,福田区网站建设,java网站开发就业怎么样视频讲解 哈希 双向链表 为什么要用双向链表? 快速删除节点(O(1)) 如果是单链表的话,删除一个节点时,需要从头遍历,找到前驱节点,才能修改 prev->next,导致 O(n)…

视频讲解

哈希 + 双向链表

为什么要用双向链表?

快速删除节点(O(1))

如果是单链表的话,删除一个节点时,需要从头遍历,找到前驱节点,才能修改 prev->next,导致 O(n) 的时间复杂度

双向链表存储了两个指针,一个指针指向下一个节点,另一个指针指向上一个节点(前驱指针)。所以我们可以根据前驱指针快速找到上一个节点,然后移除掉当前节点。

demo:

class LRUCache {
public:struct Node{int key,val;Node *prev,*next;Node(int k,int v) : key(k) , val(v) , prev(nullptr) , next(nullptr){}};map<int,Node*>mp;Node *L,*R; //双哨兵int n; //LRU的总数//创建操作LRUCache(int capacity) {n = capacity;L = new Node(-1,-1);R = new Node(-1,-1);L->next = R;R->prev = L;}//获取值操作 (获得值的时候需要注意:如果有值存在哈希表中的话,那么就要将这个值放在最新的地方)//比如: L | 2 1 4 | R //我们查询1这个数,那么查完后需要变成: L | 2 4 1 | R int get(int key) {if(mp.count(key)){Node* node = mp[key];remove(node); //在链表中移除该节点 通过双向指针移除insert(node->key,node->val); // 在链表中插入该节点return node->val;}else{return -1;}}//插入操作void put(int key, int value) {if(mp.count(key)){Node* node = mp[key];remove(node);insert(key,value); //这里需要用给的key和value而不是node->key和node->val(因为可能插入的是新的值)}else{if(mp.size() == n){Node* node = L->next; //满了,需要移除的节点remove(node);insert(key,value);}else{insert(key,value);}}}//以下为自定义新增函数 remove是移除节点的函数 insert是插入节点的函数//同时在链表和哈希表中删除nodevoid remove(Node* node){Node* pre = node->prev;Node* nxt = node->next;pre->next = nxt;nxt->prev = pre;mp.erase(node->key);}//同样要同时操作链表和哈希表void insert(int key,int val){Node* node = new Node(key,val);Node* pre = R->prev;//这里是最后一个插入的数//向右pre->next = node;node->next = R;//向左node->prev = pre;R->prev = node;mp[key] = node;}};/*** Your LRUCache object will be instantiated and called as such:* LRUCache* obj = new LRUCache(capacity);* int param_1 = obj->get(key);* obj->put(key,value);*/

http://www.hrbkazy.com/news/33726.html

相关文章:

  • 邢台做wap网站多少钱seo网站排名优化价格
  • 地方招聘网站如何做推广关键词优化快速排名
  • 腾达建设网站淘宝seo搜索引擎优化
  • 用家庭宽带做网站seo优化上海牛巨微
  • 网站发产品ps怎么做产品图网站排名优化需要多久
  • 做网站项目前怎么收集需求关键词排名提高方法
  • 内蒙古网站建设流程郑州百度快照优化排名
  • 网页设计网站规划报告网络运营商
  • pageadmin系统seo职位描述
  • 网站搭建与网站建设十大最靠谱教育培训机构
  • 素材网站设计模板下载百度网站电话是多少
  • 北京招聘网站排行google网站推广
  • app 设计网站建设中国第一营销网
  • 建立公司网站的好处域名检测工具
  • 在招聘网站做电话销售怎么样优秀网站
  • 如何制作手机版网站企业网络营销推广方法
  • wordpress 说说碎语东莞百度seo哪里强
  • 新洲建设投标网站哪里有专业的培训机构
  • 企业做网站算办公费用吗seo网络排名优化
  • wordpress音乐musik优化教程网下载
  • 做签证宾馆订单用啥网站百度关键词排名技术
  • 中国人民保险公司官方网站下载百度推广app
  • 局域网做网站 内网穿透深圳十大网络推广公司排名
  • 做网站用采集dw软件怎么制作网页
  • 做网站免费的域名成都关键词seo推广电话
  • 桂林北站到象鼻山景区怎么坐车外贸营销型网站
  • 网站建设详细工作汇报网站链接分析工具
  • 上海工程建设执业资格注册中心网站贴吧推广400一个月
  • 手机网站一般宽度做多大的武汉seo首页
  • 富阳网站建设公司seo搜索引擎优化求职简历