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

哪个行业最需要做网站神马seo教程

哪个行业最需要做网站,神马seo教程,百货商城网站建设,微网站设置视频讲解 哈希 双向链表 为什么要用双向链表? 快速删除节点(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.dinnco.com/news/26290.html

相关文章:

  • 南昌网站开发商哪家强全国疫情高峰感染高峰进度查询
  • 获取网站验证码地址seo快速排名案例
  • 婚恋网站系统实训百度搜索引擎的总结
  • wordpress做论坛网站如何用手机创建网站
  • 怎样建设公司网站公司网站设计需要多少钱
  • 网站托管平台电商推广联盟
  • 做视频网站犯法吗上海优化价格
  • 做电商网站都需要学什么网站制作的步骤
  • 如何建设一个小型网站做电商需要什么条件
  • 精品课程 网站建设质量百度竞价是seo还是sem
  • 做网站流量的方法建立企业网站步骤
  • 杭州做电商网站软文写作兼职
  • 网站建设深圳哪家好泉州全网营销推广
  • 产品做推广一般上什么网站网络营销策划书5000字
  • 做视频导航网站网站可以自己做吗
  • 怎么做收费网站新冠疫情最新消息今天公布
  • 南京医疗网站建设全网营销网络推广
  • 洛可可工业设计公司二十条优化疫情措施
  • 武汉手机网站建设咨询2021年网络营销案例
  • vps的网站打不开地推接单平台网
  • 怎么做公司网站的二维码网络营销的五个发展阶段
  • web是网站设计和建设吗搜什么关键词能找到网站
  • 外贸都用什么网站北京seo公司网站
  • wampserver做动态网站百度的营销推广模式
  • dedecms 网站访问量荥阳seo推广
  • 免费做网站怎么做网站619google下载
  • 金川做网站公司营销网站建设大概费用
  • 为你做的网站人际网络营销2900
  • 景点网站怎么做百度搜索关键词热度
  • 开发微网站和小程序论述搜索引擎优化的具体措施