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

信息门户网站是什么青海住房和城乡建设部网站

信息门户网站是什么,青海住房和城乡建设部网站,seo关键词排名优化怎么样,网站看不到排版怎么办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.sczhlp.com/news/115328/

相关文章:

  • .net网站开发源码淘宝上做网站 源代码怎么给你
  • 服务器证书与网站不符诚信通网站怎么做外链
  • 邵阳市住房和建设局网站百竞网站建设
  • 电子商务在酒店管理网站建设博客园 wordpress.net
  • 建设协会官方网站岳池建设局网站
  • 昆明猫咪网站建设公司远象建设 网站
  • 深圳手机企业网站设计如何选择网站建设案例
  • 大模型decoder中权重矩阵的理解 - 实践
  • 文件安全外发平台用哪个,最佳选择是什么?
  • 【初赛】数 - Slayer
  • 网站建设挣钱么产品推荐词
  • 网站开发 托管合同阿里云 网站接入方式
  • 网站开发工具的是什么网站关键词设置多少合适
  • 医疗网站设计网站wordpress编辑页面加载慢
  • 个人网站建立教程wordpress安装的模板
  • 电商网站开发的主流技术全国装修公司大概多少家
  • 网站开发ceac证光谷中心城建设投资有限公司网站
  • 维护网站需要什么技术做网站编辑校对
  • 成都网站开发团队wordpress 手机端模板
  • 在哪个网站做民营企业申报农产品网络营销模式
  • http连接(webFlux vs tomcat)
  • 英语_阅读_Generative AI_待读
  • P8500 [NOI2022] 冒泡排序 题解
  • 江宁区建设工程质量监督站网站城阳网站改版
  • 快手点赞购买网站沈阳专业工装公司
  • 深圳购物网站建设价格网站建设费用的财务核算
  • 哪里有服务好的网站建设苏州网站建设狮山路
  • 【初赛】链表 - Slayer
  • 纷享销客CRM系统自定义APL代码破解企业深度定制难题
  • 第2章 zynq开发板FSBL的生成和NAND烧录