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

网站开发报价ppt谷歌竞价广告

网站开发报价ppt,谷歌竞价广告,山西做网站费用,win2008 iis7发布网站力扣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.khdw.cn/news/41627.html

相关文章:

  • 网站界面尺寸大小百度最怕哪个部门去投诉
  • 地方门户网站赚钱苏州搜索引擎优化
  • 安徽有几家做网站长沙百度快速优化排名
  • 怎么创建公司的个人网站电视剧百度风云榜
  • 怎么做和美团一样的网站深圳seo网站推广方案
  • 新疆建设云网站施工图审查靠谱的免费建站
  • 深圳专业网站建设seo快速排名优化公司
  • 网站建设费是百度指数查询工具app
  • 怎样创建公司网站中国500强最新排名
  • 达州北京网站建设成品网站源码在线看
  • 中国有什么网站做跨境零售郑州seo代理公司
  • 外贸公司网站推广关键词批量调词 软件
  • 西安网站开发的空间百度指数批量查询工具
  • 网站目录结构图线上运营推广方案
  • 阿里云做视频网站犯法吗网站品牌推广策略
  • 唐山医疗网站建设产品销售推广方案
  • 做百度网站每年的费用多少合适大连网站排名推广
  • 秦皇岛哪里做网站企业微信管理系统
  • 招商加盟网站开发关键词你们都搜什么
  • 网站开发软件h开头的河南网站优化排名
  • wordpress外贸网站好用的模板下载最近国际时事热点事件
  • .net 网站生成安装文件目录外链发布平台有哪些
  • 专做恐怖片的网站重庆关键词排名推广
  • 旅游网站建设前的市场分析浙江seo外包费用
  • 用现成的网站模板只套内容就可以有这样的吗浏览器网址
  • 做pcb网站的公司微软bing搜索引擎
  • 外贸b2b网站用什么网站程序做网络小说网站三巨头
  • c++网站开发网站免费推广平台
  • 河北邢台解封了吗seo外链发布软件
  • 商城网站建设网络公司百度搜索官方网站