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

备案查询站长之家百度搜索网站

备案查询站长之家,百度搜索网站,企业外贸网站建设方案,网站空间 程序有限制吗LRU cache的实现是面试常见的题目,思路比较简单,可以参考思路 这个题目在实际面试中容易出错,主要是npe和头节点与尾节点的更新,有没有办法避免这一点呢,这时可以发现伪节点的好处,永远不用更新头尾节点&am…

LRU cache的实现是面试常见的题目,思路比较简单,可以参考思路
这个题目在实际面试中容易出错,主要是npe和头节点与尾节点的更新,有没有办法避免这一点呢,这时可以发现伪节点的好处,永远不用更新头尾节点,也不用担心出现npe

在双向链表的实现中,使用一个伪头部(dummy head)和伪尾部(dummy tail)标记界限,这样在添加节点和删除节点的时候就不需要检查相邻的节点是否存在。

代码实现:

import java.util.HashMap;
import java.util.Map;public class LRUCache {class DLinkedNode {int key;int value;DLinkedNode prev;DLinkedNode next;public DLinkedNode() {}public DLinkedNode(int _key, int _value) {key = _key; value = _value;}}private Map<Integer, DLinkedNode> cache = new HashMap<Integer, DLinkedNode>();private int size;private int capacity;private DLinkedNode head, tail;public LRUCache(int capacity) {this.size = 0;this.capacity = capacity;// 使用伪头部和伪尾部节点head = new DLinkedNode();tail = new DLinkedNode();head.next = tail;tail.prev = head;}public int get(int key) {DLinkedNode node = cache.get(key);if (node == null) {return -1;}// 如果 key 存在,先通过哈希表定位,再移到头部moveToHead(node);return node.value;}public void put(int key, int value) {DLinkedNode node = cache.get(key);if (node == null) {// 如果 key 不存在,创建一个新的节点DLinkedNode newNode = new DLinkedNode(key, value);// 添加进哈希表cache.put(key, newNode);// 添加至双向链表的头部addToHead(newNode);++size;if (size > capacity) {// 如果超出容量,删除双向链表的尾部节点DLinkedNode tail = removeTail();// 删除哈希表中对应的项cache.remove(tail.key);--size;}}else {// 如果 key 存在,先通过哈希表定位,再修改 value,并移到头部node.value = value;moveToHead(node);}}private void addToHead(DLinkedNode node) {node.prev = head;node.next = head.next;head.next.prev = node;head.next = node;}private void removeNode(DLinkedNode node) {node.prev.next = node.next;node.next.prev = node.prev;}private void moveToHead(DLinkedNode node) {removeNode(node);addToHead(node);}private DLinkedNode removeTail() {DLinkedNode res = tail.prev;removeNode(res);return res;}
}
http://www.15wanjia.com/news/28156.html

相关文章:

  • 课程网站建设规划软文范例500字
  • 佛山顺德网站制作公司搜索引擎优化工具有哪些
  • sm网站寻女主人做性奴长春网站优化指导
  • 找人做网站维护多少钱网页搜索优化
  • 分析网站示例快速提升网站关键词排名
  • 网站开发要多长时间百度百科优化排名
  • 大兴网站开发网站建设seo发包软件
  • 典当行网站模板百度搜索如何去广告
  • 如何做阿里巴巴免费网站广告网站有哪些
  • 网站哪家做的好中国互联网域名注册服务机构
  • 邯郸市教育考试院网站网站搜索优化
  • 网站建设结课小论文搜索引擎关键词快速优化
  • html 门户网站模板百度人工服务在线咨询
  • 就要使用网页制作工具seo快速排名优化方法
  • 当前业界主流的网站建设宁波seo快速优化
  • 客户网站开发全流程图海口关键词优化报价
  • 怎么提升网站的流量吗百度网络营销的概念
  • 中国建筑网官网监理工程师网站怎样建立网站平台
  • 合作建网站西安网站seo价格
  • 杭州 做网站企业关键词优化最新报价
  • 营销型网站建设必备功能关键词优化排名软件s
  • wordpress图片素材主题seo网站优化方案书
  • asp动态网站开发案例教程 pdf珠海网站建设优化
  • 中英网站的设计1688关键词怎么优化
  • 前端案例的网站成都网络营销公司哪家好
  • vscode制作个人网站浏览器网址
  • 做电影分享网站违法吗一元手游平台app
  • 专业集团网站建设网络媒体
  • 宽屏网站模板莱阳seo排名
  • 芜湖市网站开发地推接单平台网