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

任丘做网站价格攀枝花网站怎么做seo

任丘做网站价格,攀枝花网站怎么做seo,重庆市建设工程信息网、,搜索引擎优化的工作原理力扣labuladong一刷day52天LRU算法 文章目录 力扣labuladong一刷day52天LRU算法概念一、146. LRU 缓存思路一:使用双向链表加map来手动实现。思路二:使用LinkedHashMap 概念 LRU的全称为Least Recently Used,翻译出来就是最近最少使用的意思…

力扣labuladong一刷day52天LRU算法

文章目录

      • 力扣labuladong一刷day52天LRU算法
      • 概念
      • 一、146. LRU 缓存
        • 思路一:使用双向链表加map来手动实现。
        • 思路二:使用LinkedHashMap

概念

LRU的全称为Least Recently Used,翻译出来就是最近最少使用的意思,它是一种内存淘汰算法,当内存不够时,将内存中最久没使用的数据清理掉。 LUR算法是内存管理的一种页面置换算法,就是用来删除内存中不被使用的数据,腾出空间来把常用的数据存进去。

一、146. LRU 缓存

题目链接:https://leetcode.cn/problems/lru-cache/

思路一:使用双向链表加map来手动实现。
class Node {public int key, val;public Node next, prev;public Node(int k, int v) {key = k;val = v;}
}class DoubleList{private Node head, tail;private int size;public DoubleList() {head = new Node(0, 0);tail = new Node(0, 0);head.next = tail;tail.prev = head;size = 0;}void addLast(Node x) {x.next = tail;x.prev = tail.prev;tail.prev.next = x;tail.prev = x;size++;}void remove(Node x) {x.prev.next = x.next;x.next.prev = x.prev;size--;}Node removeFirst() {if (head.next == tail) {return null;}Node first = head.next;remove(first);return first;}int size() {return size;}
}class LRUCache{private HashMap<Integer, Node> map;private DoubleList cache;private int cap;public int get(int key) {if (!map.containsKey(key)) {return -1;}makeRecently(key);return map.get(key).val;}public void put(int key, int value) {if (map.containsKey(key)) {deleteKey(key);addRecently(key, value);return;}if (cap == cache.size()) {deleteLastRecently();}addRecently(key, value);}public LRUCache(int capacity) {this.cap = capacity;this.map = new HashMap<>();this.cache = new DoubleList();}private void makeRecently(int key) {Node node = map.get(key);cache.remove(node);cache.addLast(node);}private void addRecently(int key, int value) {Node node = new Node(key, value);map.put(key, node);cache.addLast(node);}private void deleteKey(int key) {Node node = map.remove(key);cache.remove(node);}private void deleteLastRecently() {Node node = cache.removeFirst();map.remove(node.key);}}/*** 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);*/
思路二:使用LinkedHashMap

put都是从尾部加入,要想删除头部可以使用map.keySet().iterator().next();拿到key,然后删除。

class LRUCache {LinkedHashMap<Integer, Integer> map;int cap = 0;public LRUCache(int capacity) {map = new LinkedHashMap<>();cap = capacity;}public int get(int key) {if (!map.containsKey(key)) {return -1;}Integer val = map.remove(key);map.put(key, val);return val;}public void put(int key, int value) {if (map.containsKey(key)) {map.remove(key);map.put(key, value);return;}if (cap <= map.size()) {Integer first = map.keySet().iterator().next();map.remove(first);}map.put(key, value);}
}
http://www.yayakq.cn/news/577273/

相关文章:

  • 做买鞋网站的论文内丘附近网站建设价格
  • 做网站推广 优帮云网站备案 途径
  • 设计师关注的十大网站运营好的网站制作中心
  • 模板网站免费建站京东网站开发多少钱
  • 游戏网站平台怎么做的一线视频免费观看
  • 设计网站怎么设计陕西省城乡建设厅的网站
  • 做企业网站项目的心得网站建设86215
  • 高校网站建设情况报告范文钢结构工程外包项目网
  • 企业信息化建设如何帮助客户理解网站流量易居房产网下载
  • 有哪些免费网站可以做店招赣州网站制作公司
  • 网站服务器申请wordpress英文版登陆
  • 南安淘宝网站建设学校网站建设源码
  • 电商网站开发设计net网站开发环境
  • 水果商城网站制作多少钱北京虚拟注册地址新政
  • 资溪做面包招聘的网站wordpress打开网站加速
  • 网站文章展示是做怎么广东新闻联播2011
  • ip代理池白帽seo是什么
  • 做网站提成物联网应用技术就业前景
  • asp网站首页模板语言互动网站建设
  • 西安网站设计报价吉林网站建设价格
  • 做一个展示型网站多少钱做我男朋友好不好网站
  • 网站开发公司哪家好深圳品牌馆设计公司
  • 网站建设合同要不要交印花税wordpress 查询数据
  • 学网站前端网站设计工程师培训
  • 网站后台管理系统域名网站怎么做登录
  • 如何开发手机端网站网站导航固定代码
  • jsp网站搭建哪个网站可以免费下载电视剧看
  • 虚拟主机对网站seo有哪些影响昆明网站快照优化公司
  • 临沂哪家做网站最好网站建设合同付款比例
  • 岳阳网站建设推广竞价推广出价多少合适