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

门户网站开发工具高性能标准网站建设进阶指南 pdf

门户网站开发工具,高性能标准网站建设进阶指南 pdf,我的百度账号,网页游戏平台返利143.环形链表ii 快慢指针 至于入环点的计算 设链表中环外部分的长度为 a。slow 指针进入环后#xff0c;又走了 b 的距离与 fast 相遇。此时#xff0c;fast 指针已经走完了环的 n 圈#xff0c;因此它走过的总距离为 an(bc)ba(n1)bnc。 任意时刻#xff0c;fast 指针走过…143.环形链表ii 快慢指针 至于入环点的计算 设链表中环外部分的长度为 a。slow 指针进入环后又走了 b 的距离与 fast 相遇。此时fast 指针已经走完了环的 n 圈因此它走过的总距离为 an(bc)ba(n1)bnc。 任意时刻fast 指针走过的距离都为 slow 指针的 2 倍。因此有 a(n1)bnc2(ab)⟹ac(n−1)(bc) 因此 从相遇点到入环点的距离加上 n−1 圈的环长恰好等于从链表头部到入环点的距离。 因此当发现 slow 与 fast 相遇时再额外使用一个指针 ptr。起始它指向链表头部随后它和 slow 每次向后移动一个位置。最终它们会在入环点相遇 146.LRU缓存 因为get和put都需要快速找到节点所以使用哈希表将key映射到链表对应的位置 get和put都是O(1)所以使用双向链表同时使用一个哨兵节点让每个节点的pre和next都不为空 构造双向链表节点类 class node{ public:int key, value;node *prev, *next;node(int k0, int v0): key(k), value(v){} }需要实现get_node()函数将指定值的node找到从原位置删除放到链表的开头哨兵节点后 void remove(node* x){x-prev-nextx-next;x-next-prevx-prev;}void push_front(node* x){x-prev dummy;x-next dummy-next;x-prev-nextx;x-next-prevx;}node* get_node(int key){auto it key_to_node.find(key);if(itkey_to_node.end())return nullptr;auto node it-second;remove(node);push_front(node);return node;}class node{ public:int key, value;node *prev, *next;node(int k0, int v0): key(k), value(v){} }; class LRUCache { private:int capacity;node *dummy;unordered_mapint,node* key_to_node;void remove(node* x){x-prev-nextx-next;x-next-prevx-prev;}void push_front(node* x){x-prev dummy;x-next dummy-next;x-prev-nextx;x-next-prevx;}node* get_node(int key){auto it key_to_node.find(key);if(itkey_to_node.end())return nullptr;auto node it-second;remove(node);push_front(node);return node;}public:LRUCache(int capacity):capacity(capacity),dummy(new node()) {dummy-prevdummy;dummy-nextdummy;}int get(int key) {auto nodeget_node(key);return node?node-value:-1;}void put(int key, int value) {auto node1 get_node(key);if(node1){node1-value value;return;}node1 new node(key,value);key_to_node[key] node1;push_front(node1);if(key_to_node.size()capacity){auto back_nodedummy-prev;key_to_node.erase(back_node-key);remove(back_node);delete back_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.tj-hxxt.cn/news/226342.html

相关文章:

  • 四川省住房和城乡建设厅网站查询付费wordpress
  • 网站设计概念263企业邮箱入口 邮箱登录
  • 电子商务网站策划书模板五种关键词优化工具
  • 做移门配件的网站wordpress汽车主题公园
  • 企业网站建设信息管理平台站长工具网站测速
  • 网站优化模板贸易公司如何找客户
  • 展示型网站功能萧山品牌网站建设
  • 网站的模糊搜索怎么做商城网站建设行情
  • 安徽和住房建设厅网站网站建设和赚钱方法
  • 自己做购物网站怎么做大连公司注册网站
  • 安徽茶叶学会 网站建设网站设计建设方案
  • 宣武青岛网站建设苏州正规制作网站公司
  • 做一个推广网站多少钱免费外链网盘
  • 时尚网站欣赏代理商加盟网站
  • 广州网站备案号吉林建站
  • 采集站seo课程人们常说的蓝领是从事什么工作的
  • 门户网站特点一小时赚8000元的游戏
  • 银川网站公司网站租空间多少钱
  • 时尚女装网站设计河北建设工程造价信息网站
  • 网站母版页怎么做北京网站优化厂家
  • 创建网站免费注册网站360做的标记如何取消
  • 网站页面设计报价表许昌旅游网站建设现状
  • 哪个网站可以卖自己的设计住房城乡建设部网站诚信平台
  • 宝塔网站建设跳转微信可打开为什么四川省建设厅网站打不开
  • 西昌建设招聘信息网站网站举报平台建设情况
  • 怎么样做美术招生信息网站网架公司的螺丝是不是公司安好
  • 信息网站大全电子商务网站建设 百度文库
  • 西宁市网站建设网站建设入门教学
  • 腾讯云手动搭建wordpress个人站点做网站的公司多吗
  • 国内jsp网站有哪些低价网站建设湘潭