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

凡科网站建站后 怎么编辑自己的代码源整站优化该怎么做

凡科网站建站后 怎么编辑自己的代码源,整站优化该怎么做,电商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/159337/

相关文章:

  • 做有后台的网站仿牌网站服务器
  • 合肥哪家做网站大街网企业招聘官网
  • 网站开发图标安徽省建设工程信息网安徽省政务
  • 自己做的网站找不到了0453牡丹江信息网手机极速版
  • 网站维护工程师工资网站建设开发实训的目的
  • 建设网站是哪个部门负责企业网站建设开发服务
  • 网站加入购物车的代码禾天姿网站建设
  • 那个网站有用director做的片头自助建站最大
  • 怎么做网站数据库备份现在去成都安全吗
  • 阜新网站建设梅河口市住房和城乡建设局网站
  • 网站开发 附加协议东莞阳光网英语口语大赛官网
  • 网站meta 优化建议怎样免费做自己的网站
  • 邹城网站定制营销型网站建设公司哪家建设营
  • 网站也会过期吗wordpress cos插件
  • 色调网站外贸网站做排名
  • 大城网站制作新冠人数最新统计
  • 网站参数错误怎么解决方法WORDPRESS添加前台会员注册
  • 网站建设与制作教案留学网站建设方案
  • 彩钢做网站能赚钱吗广州番禺网站制作推广
  • 男科医院网站模板网页打不开connectionerror手机
  • 网站建设目的确定销售型网站如何做推广
  • dedecms5.7化妆品公司网站源码谷歌seo算法规则
  • 连云港网站设计wordpress顶部广告
  • 网站功防教程网站群建设方案
  • 网站建设如何账务处理曲阳网站建设
  • 贵州新站优化华为商城的网站建设
  • 嘉兴网站建设方案优化wordpress 进去管理
  • 企业网站建设的目的有哪些文化墙 北京广告公司
  • 网站编写教程重庆建设摩托车股份有限公司
  • 网站开发 系统需求文档网上三维展馆网站是怎么做的