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

建网站做淘宝客可以吗大型网站 开发语言

建网站做淘宝客可以吗,大型网站 开发语言,升级不了wordpress,皮肤自做头像的网站LRU: LRU是Least Recently Used的缩写#xff0c;即最近最少使用#xff0c;是一种常用的页面置换算法#xff0c;选择最近最久未使用的页面予以淘汰。 核心思想#xff1a; 基于Map实现k-v存储#xff0c;双向链表中使用一个虚拟头部和虚拟尾部#xff0c;虚拟头部的…LRU: LRU是Least Recently Used的缩写即最近最少使用是一种常用的页面置换算法选择最近最久未使用的页面予以淘汰。 核心思想 基于Map实现k-v存储双向链表中使用一个虚拟头部和虚拟尾部虚拟头部的下一个结点是链表第一个结点虚拟尾部的前一个结点是链表最后一个结点。每次查询、新增、修改某个Key时将key在链表中的位置移动到头部这样尾部结点就是最近最少使用的每次容量超限时从尾部删除。get缓存和put缓存操作的时间复杂度都为O(1) 链表结点结构 class Node{int key;int value;Node next;Node prev;public Node(){nextnull;prevnull;}public Node(int key,int value){this.keykey;this.valuevalue;nextnull;prevnull;}} 代码 假设缓存的kv都为int类型 public class LRUCache {class Node{int key;int value;Node next;Node prev;public Node(){nextnull;prevnull;}public Node(int key,int value){this.keykey;this.valuevalue;nextnull;prevnull;}}private int capacity;private HashMapInteger,Node cachenew HashMap();private Node head,tail;public LRUCache(int capacity) {this.capacitycapacity;headnew Node();tailnew Node();head.nexttail;tail.prevhead;}public int get(int key) {Node node cache.get(key);if(nodenull)return -1;//删除key在链表中的noderemoveNode(node);//将key在链表中的node放到队头addToHead(node);return node.value;}public void put(int key, int value) {Node node cache.get(key);if(node!null){//更新valuenode.valuevalue;//删除key在链表中的noderemoveNode(node);//将key在链表中的node放到队头addToHead(node);}else{Node newNodenew Node(key,value);cache.put(key,newNode);//将key在链表中的node放到队头addToHead(newNode);if(cache.size()capacity){//容量超过capacityNode remo tail.prev;cache.remove(remo.key);removeNode(remo);}}}private void removeNode(Node node){node.prev.nextnode.next;node.next.prevnode.prev;}private void addToHead(Node node){node.nexthead.next;node.prevhead;head.next.prevnode;head.nextnode;}public static void main(String[] args) {LRUCache lRUCache new LRUCache(2);lRUCache.put(1, 1); // 缓存是 {11}lRUCache.put(2, 2); // 缓存是 {11, 22}System.out.println(lRUCache.get(1)); // 返回 1lRUCache.put(3, 3); // 该操作会使得关键字 2 作废缓存是 {11, 33}System.out.println(lRUCache.get(2)); // 返回 -1 (未找到)lRUCache.put(4, 4); // 该操作会使得关键字 1 作废缓存是 {44, 33}System.out.println(lRUCache.get(1)); // 返回 -1 (未找到)System.out.println(lRUCache.get(3)); // 返回 3System.out.println(lRUCache.get(4)); // 返回 4} } 运行结果 注 为什么用双向链表而不是单向链表 在删除链表操作中单链表要找到要删除结点的前驱结点时间复杂度就为O(n)了而用双链表可以在O(1)复杂度上删除结点。 为什么链表节点需要同时存储 key 和 value而不是仅仅只存储 value 容量超限删除缓存时要根据node的key从Map中找到node从而将缓存删除。
http://www.hkea.cn/news/14293792/

相关文章:

  • 泰安建站哪家好建设部网站实名制举报
  • 建立企业网站的意义网站开发应看什么书籍
  • 网站建设部门管理制度长春vi设计公司
  • 主机屋的免费空间怎么上传网站有实力的网站建设公司
  • 制作企业网站的问题大余做网站公司
  • 劳保用品 技术支持 东莞网站建设h5制作模板官网
  • 有没有做英语题的网站昆明购物网站建设
  • 网站开发报价单明细用cms建设网站课程宅门
  • 网站建设制作一个网站的费用做书的网站
  • 网站给他人做付刑事责任昌平最好的网站建设
  • 杭州一起做网站seo基础理论
  • 中山网站推广网站备案单位查询
  • 做网站教程免费wordpress批量导入标签
  • 大型做网站温州市手机网站制作
  • 怎样做响应式网站官方app下载安装
  • 商城网站设计网站 别名
  • 老专家个人网站网站的ci设计怎么做
  • 企业网站推广设计wordpress淘宝客教程
  • 济南网站建设联系方式网络教学平台昆明理工大学
  • 企业网站建设预算表net做网站
  • 公司网站建设合同交印花税吗缙云建设局网上协同办公oa网站
  • 设计企业网站首页上海网站建设安全
  • 做网站时怎么让边框细一点WordPress自定义上传目录
  • 软件项目管理流程图seo搜索引擎优化人才
  • 内容聚合网站开发教程网站推广策划公司
  • 网站后台登陆显示验证码错误长春中企动力
  • 网站上二维码怎么做的电商网站建设注意
  • 集团网站怎么建设做热区的网站
  • 南通网站设计瑞昌建站公司
  • 海拉尔建设局网站注册安全工程师白考了