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

wordpress插件途径用仿网站做优化有效果吗

wordpress插件途径,用仿网站做优化有效果吗,学做网站制作,外国酷炫网站题目:146. LRU 缓存 思路:哈希表双向链表,时间复杂度0(n)。 get、put时间复杂度必须为0(n),那么就得用空间换时间。双向链表来记录每一个节点node(key-value),哈希表来记录每一个key所对应的节…

题目:146. LRU 缓存

在这里插入图片描述
在这里插入图片描述
思路:哈希表+双向链表,时间复杂度0(n)。

get、put时间复杂度必须为0(n),那么就得用空间换时间。双向链表来记录每一个节点node(key-value),哈希表来记录每一个key所对应的节点node。
在get、put时,先判断哈希表mp里是否存储了key,而双向链表是维护每一个节点的访问顺序。

C++版本:

class LRUCache {
// 节点node
typedef struct Node{int key;int val;Node * prev;Node * next;Node(int k,int v):key(k),val(v){}
}node;// 哈希表的最大容量
int capt;
// 双向链表的哨兵节点
node *head;
// 哈希表
unordered_map<int,node *> mp;public:// 将双向链表的节点x删除void deletee(node * x){x->prev->next=x->next;x->next->prev=x->prev;}// 将节点x插入到双向链表的头节点,也就是哨兵节点head的右边void insertt(node * x){x->prev=head;x->next=head->next;x->prev->next=x;x->next->prev=x;}// 初始化内置函数LRUCache(int capacity) {capt=capacity;head=new node(0,0);head->next=head;head->prev=head;}int get(int key) {if(mp.find(key)==mp.end()) return -1;deletee(mp[key]);insertt(mp[key]);return mp[key]->val;}void put(int key, int value) {// 哈希表存在keyif(mp.find(key)!=mp.end()){node * tmp=mp[key];tmp->val=value;deletee(tmp);insertt(tmp);return ;}// 哈希表不存在keymp[key]=new node(key,value);insertt(mp[key]);// 哈希表容量大于capacityif(mp.size()>capt){// 通过哨兵节点head找到最后一个节点node * bak=head->prev;deletee(bak);mp.erase(bak->key);delete bak;}}
};/*** 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);*/

JAVA版本:

class LRUCache {class node{int key;int val;node prev,next;node(int k,int v){key=k;val=v;}}int capt;node head=new node(0,0);Map<Integer,node> mp=new HashMap<>();void deletee(node  x){x.prev.next=x.next;x.next.prev=x.prev;}void insertt(node x){x.prev=head;x.next=head.next;x.prev.next=x;x.next.prev=x;}LRUCache(int capacity) {capt=capacity;head.next=head;head.prev=head;}int get(int key) {if(mp.containsKey(key)==false) return -1;deletee(mp.get(key));insertt(mp.get(key));return mp.get(key).val;}void put(int key, int value) {if(mp.containsKey(key)==true){node tmp=mp.get(key);tmp.val=value;deletee(tmp);insertt(tmp);return ;}mp.put(key,new node(key,value));insertt(mp.get(key));if(mp.size()>capt){node bak=head.prev;deletee(bak);mp.remove(bak.key);}}
}/*** 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);*/

GO版本:

type node struct{key,val    intprev,next  *node
}type LRUCache struct {capacity inthead     *nodemp       map[int]*node
}func Constructor(capacity int) LRUCache {nd:=&node{key:0,val:0,}nd.prev=ndnd.next=ndreturn LRUCache{capacity :capacity,head     :nd,mp       :map[int]*node{},}
}func (this *LRUCache) deletee(x *node){x.prev.next=x.nextx.next.prev=x.prev
}func (this *LRUCache) insertt(x *node){x.prev=this.headx.next=this.head.nextx.prev.next=xx.next.prev=x
}func (this *LRUCache) getNode(key int) *node{nd,ok :=this.mp[key]if !ok {return nil}this.deletee(nd)this.insertt(nd)return nd
}func (this *LRUCache) Get(key int) int {nd:=this.getNode(key)if nd==nil {return -1}return nd.val
}func (this *LRUCache) Put(key int, value int)  {nd:=this.getNode(key)if nd!=nil {nd.val=valuereturn}this.mp[key]=&node{key :key,val :value,}this.insertt(this.mp[key])if len(this.mp)>this.capacity {bak:=this.head.prevthis.deletee(bak)delete(this.mp,bak.key)}return 
}/*** Your LRUCache object will be instantiated and called as such:* obj := Constructor(capacity);* param_1 := obj.Get(key);* obj.Put(key,value);*/
http://www.dtcms.com/a/447337.html

相关文章:

  • 怎么建造个人网站公众号版面设计创意
  • 企业网站备案教程中国外贸论坛
  • 外国网站的浏览器下载适合美工的网站
  • 物联网对企业网站建设的要求品质商城网站建设
  • 做网站什么空间比较好全国私人订制平台
  • 网站建设 媒体广告东莞知名企业排名
  • B树、B+树、B*树深度探索与解析:为什么数据库青睐于它们?
  • 做电子商务网站需要什么手续四川营销型网站建设公司
  • wordpress拉哈尔滨企业网站seo
  • 做网站 毕业设计wordpress重装密码
  • 公司网站设计的公司网站的建设多少钱
  • 【AI4S】基于分子图像与分子描述符的药物筛选预测模型
  • 绍兴网站建设 微德福wordpress优惠券模板
  • 韶关做网站需要多少钱网站 app开发 财务做帐
  • 烽火台网站wordpress公网ip访问
  • 网址制作网站wordpress用win还是Linux
  • 上海高端建站网站如何优化网络环境
  • Jetson Nano学习—SD卡系统镜像烧录全流程
  • 搜索网址网站建站p2p网站开发多少钱
  • 北京公司可以在上海建网站吗企业网站模板seo
  • 西平县建设局网站网络营销官网
  • 注册了域名怎么添加到自己的网站vps网站管理软件
  • 【C++贪心 二分查找】P8775 [蓝桥杯 2022 省 A] 青蛙过河|普及+
  • node 做的大型网站健康门户网站源码
  • 10.5总结
  • html5网站后台模板怎么调用前台球球cdk怎么做网站
  • 网站备案更改不错宁波seo公司
  • 兰州正规seo整站优化工具网站需要具备条件
  • 军博做网站公司可以悬赏做任务的叫什么网站
  • 视频网站做漫画网站开发人员需要去做原型吗