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

做网站资源和幼儿做网站爱

做网站资源,和幼儿做网站爱,建设电瓶车官方网站,丰润网站建设一、题目 二、思路 题目要求 O(1) 的平均时间复杂度运行 -> 使用Map空间换时间 Map<Integer, Node>Map 通过 key 直接找到对应节点 getNode(key) -> Node记得只要查过该节点之后就应该把该节点放到最前面 pushFront(Node)put 元素后&#xff0c;在map中添加&…

一、题目在这里插入图片描述

二、思路

  • 题目要求 O(1) 的平均时间复杂度运行 -> 使用Map空间换时间 Map<Integer, Node>
  • Map 通过 key 直接找到对应节点 getNode(key) -> Node
  • 记得只要查过该节点之后就应该把该节点放到最前面 pushFront(Node)
  • put 元素后,在map中添加,记得检查是否超过 capacity,超过则删除在map中的元素,以及在链表中的元素 delete(Node)
  • 这里提到的 pushFront(Node) 和 delete(Node) 都是针对双向队列进行位置移动相关的操作,不涉及 Map。

三、代码

class LRUCache {class Node{int key,val;Node pre, next;Node(int key, int val) {this.key = key;this.val = val;}}Node dummy = new Node(0, 0);int capacity;Map<Integer, Node> map = new HashMap<>();// 初始化双向队列public LRUCache(int capacity) {dummy.pre = dummy;dummy.next = dummy;this.capacity = capacity;}public int get(int key) {// 从 map 中快速获得 nodeNode node = map.get(key);// 不存在返回 -1if (node == null) {return -1;}// 查询到需要遵循LRU的规则将最近查询的放到队首delete(node);pushFront(node);return node.val;}public void put(int key, int value) {Node node = map.get(key);// 已经存在就直接进行更新值,结束 put 方法if (node != null) {// 更新值node.val = value;delete(node);pushFront(node);return ;}// 不存在就新建一个 node,在双向队列和 map 中同时更新node = new Node(key,value);pushFront(node);map.put(key, node);// 更新后检查是否超出容量// 超出容量就删除双向队列中的最后一个节点,同时在 map 中删除if (map.size() > capacity) {Node lastNode = dummy.pre;delete(lastNode);map.remove(lastNode.key);}}// 将 node 放到双向队列队首private void pushFront(Node node) {node.next = dummy.next;node.pre = dummy;dummy.next.pre = node;dummy.next = node;}// 在双向队列中删除 nodeprivate void delete(Node node) {node.pre.next = node.next;node.next.pre = node.pre;}
}/*** 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.dtcms.com/wzjs/535769.html

相关文章:

  • 网站建设基础心得微信网页登录入口
  • 网站建设市场数据分析个人备案网站做盈利合法吗
  • 德州公司做网站wordpress文章字数
  • asp音乐网站开发教程深圳十大传媒公司排名
  • 私人网站制作 个人使用主页网站建设
  • 网站建设的财务计划网站集成支付宝教程
  • 群晖网站建设口岸地区网站建设内容
  • 内乡微网站开发品牌网是什么
  • 墨尔本网站建设wordpress连接本地数据库
  • wordpress创建登录页网站自然优化是什么意思
  • 网站改版的必要性徐州cms建站系统
  • 网站的布局方式有哪些方面wordpress站长地图
  • 检测网站安全wordpress如何添加关键词
  • 网站建设 租赁台州专业网站建设
  • 南京做微网站微信商城开店需要费用吗
  • 网站建设常用代码网络营销方式单一的后果
  • 网页二级网站怎么做网络营销是什么样的营销模式
  • 网站建设云尚网络网站用户反馈
  • 汕尾北京网站建设网络维护这个工作好吗
  • 网上做视频赚钱的网站石家庄百度推广排名
  • 网站制作实训网络哪里能接活做网站
  • 网站logo例子为什么需要网站开发
  • 美橙网站设计临沂企业建站模板
  • 网站开发问题论文网站建设开发公司哪家好
  • 网站建设 500强建站网站的类型有哪几种
  • 上海的网站开发公司电话有关建筑网站建设方案
  • 网站搜索要怎么做大连开发区着火
  • 做网站要钱嘛目前做系统比较好的网站
  • 传奇三端互通新开服网站filezilla wordpress
  • 展览设计网站推荐seo诊断书