【hot100-java】LRU 缓存
链表篇

灵神题解


class LRUCache {private static class Node{int key,value;Node prev,next;Node (int k,int v){key=k;value=v;}}private final int capacity;//哨兵节点private final Node dummy=new Node(0,0);private final Map<Integer,Node> keyToNode =new HashMap<>();public LRUCache(int capacity) {this.capacity=capacity;dummy.prev=dummy;dummy.next=dummy;}public int get(int key) {Node node=getNode(key);return node!=null?node.value:-1;}public void put(int key, int value) {Node node=getNode(key);//有书则更新if(node!=null){node.value=value;return;}node=new Node(key,value);keyToNode.put(key,node);//放在最上面pushFront(node);//书太多了if(keyToNode.size()>capacity){Node backNode=dummy.prev;keyToNode.remove(backNode.key);//去掉最后一本书remove(backNode);}}//取节点private Node getNode(int key){//没有这本书if(!keyToNode.containsKey(key)){return null;}//有这本书Node node=keyToNode.get(key);//抽出来remove(node);//放在最上面pushFront(node);return node;}//删除一个节点(抽出一本书)private void remove(Node x){x.prev.next=x.next;x.next.prev=x.prev;}//链表头添加节点private void pushFront(Node x){x.prev=dummy;x.next=dummy.next;x.prev.next=x;x.next.prev=x;}
}/*** 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);*/
背题
相关文章:
【hot100-java】LRU 缓存
链表篇 灵神题解 class LRUCache {private static class Node{int key,value;Node prev,next;Node (int k,int v){keyk;valuev;}}private final int capacity;//哨兵节点private final Node dummynew Node(0,0);private final Map<Integer,Node> keyToNode new HashMap&l…...
Centos7安装ZLMediaKit
一 获取代码 git clone https://gitee.com/xia-chu/ZLMediaKit cd ZLMediaKit git submodule update --init git submodule update --init 命令用于初始化和更新 Git 仓库中的子模块(submodules)。这个命令在 Git 仓库中包含对其他 Git 仓库作为依赖时…...
面试问我LLM中的RAG,咱就是说秒过!!!
前言 本篇文章涉及了 RAG 流程中的数据拆分、向量化、查询重写、查询路由等等,在做 RAG 的小伙伴一定知道这些技巧的重要性。推荐仔细阅读,建议收藏,多读几遍,好好实践。 本文是对检索增强生成(Retrieval Augmented …...
python程序操作pdf
python代码进行多个图片合并为pdf: #python代码进行多个图片合并为pdf: from PIL import Image from fpdf import FPDF import osdef images_to_pdf(image_paths, output_pdf, quality85):"""将多个图片合并为一个PDF文件,并…...
【Python报错】ImportError: DLL load failed while importing _network: 找不到指定的模块。
【Python报错】ImportError: DLL load failed while importing _network: 找不到指定的模块。 问题描述报错原因解决方案参考 问题描述 此段Python代码(在Conda环境下运行)昨天还能运行,但在我手痒更新conda(我有罪)之…...
外包干了5天,技术明显退步
我是一名本科生,自2019年起,我便在南京某软件公司担任功能测试的工作。这份工作虽然稳定,但日复一日的重复性工作让我逐渐陷入了舒适区,失去了前进的动力。两年的时光匆匆流逝,我却在原地踏步,技术没有丝毫…...
正则表达式 | Python、Julia 和 Shell 语法详解
正则表达式在网页爬虫、脚本编写等众多任务中都有重要的应用。为了系统梳理其语法,以及 Python、Julia 和 Shell 中与正则表达式相关的工具,本篇将进行详细介绍。 相关学习资源:编程胶囊。 基础语法 通用语法 在大多数支持正则表达式的语…...
JavaScript全面指南(一)
🌈个人主页:前端青山 🔥系列专栏:JavaScript篇 🔖人终将被年少不可得之物困其一生 依旧青山,本期给大家带来JavaScript篇专栏内容:JavaScript全面指南(一) 1、介绍一下JS的内置类型有哪些? 基本数据类型…...
docker-compose与docker
“docker-compose” 是一个用于定义和运行多容器 Docker 应用程序的工具。它使用一个名为 docker-compose.yml 的配置文件来描述应用程序的服务、网络和卷,然后通过简单的命令就可以管理整个应用。 以下是一些常用的 docker-compose 命令及其用法: 启动…...
DDPM浅析
在机器学习和人工智能领域,生成模型一直是一个备受关注的研究方向。近年来,一种新型的生成模型——扩散概率模型(Diffusion Probabilistic Models,简称DDPM)引起了广泛的关注。本文将探讨DDPM的原理、优势以及应用。 …...
力扣刷题-算法基础
hello各位小伙伴们,为了进行算法的学习,小编特意新开一个专题来讲解一些算法题 1.移除元素. - 力扣(LeetCode) 本题大概意思是给定一个数组和一个数val删除与val相同的元素,不要改变剩余元素的顺序,最后返回剩余元素的个数。 我们在这里使用双指针,这里的双指针并不是…...
理解 Python 中的 Hooks 和装饰器
Python 中的 hooks 和装饰器,虽然它们看起来都有些魔法加成,但实际上各有妙用。下面看看他们到底是做什么的吧。 什么是 Hooks? Hooks 是指在某些操作或事件发生时,可以将自定义的代码插入和执行的一种机制。它们常用于扩展和修…...
Android 原生程序使用gdb, addr2line, readelf调试
Platform: RK3368 OS: Android 6.0 Kernel: 3.10.0 文章目录 一 gdb1. 原生程序添加调试符号2. 主机上adb push 编译好的原生程序到设备3. 设备上使用gdbserver运行原生程序4. 主机上设置adb端口转发5. 主机上运行gdb调试 二 addr2line三 readelf 一 gdb GDB(GNU…...
PHP 函数 func_num_args() 的作用
func_num_args() 是 PHP 中的一个内置函数,用于获取传递给当前用户定义函数的参数个数。这个函数特别有用于处理可变数量的参数(也称为可变参数列表)。 语法 int func_num_args ( void ) 返回值 func_num_args() 返回一个整数,…...
深入解析单片机原理及其物联网应用:附C#示例代码
深入解析单片机原理及其物联网应用:附C#示例代码 随着物联网技术的快速发展,单片机作为嵌入式系统的核心,已经广泛应用于各类智能设备中。本文将从单片机的原理出发,结合C#编程的物联网示例,带你深入了解如何利用单片…...
HTTP 和 WebSocket
目录 HTTP是什么HTTP局限性(HTTP1.1)请求和响应HTTP的主要特点:HTTP版本: HTTP与TCP关系数据封装传输过程1. **协议层次模型**:2. **封装过程**:1. **应用层(HTTP)**:2. …...
科技云报到:大模型时代下,向量数据库的野望
科技云报到原创。 自ChatGPT爆火,国内头部平台型公司一拥而上,先后发布AGI或垂类LLM,但鲜有大模型基础设施在数据层面的进化,比如向量数据库。 在此之前,向量数据库经历了几年的沉寂期,现在似乎终于乘着Ch…...
贪吃蛇游戏(代码篇)
我们并不是为了满足别人的期待而活着。 前言 这是我自己做的第五个小项目---贪吃蛇游戏(代码篇)。后期我会继续制作其他小项目并开源至博客上。 上一小项目是贪吃蛇游戏(必备知识篇),没看过的同学可以去看看…...
数控走心机系统可以定制吗
当然,走心机系统是可以定制的。随着数控技术的不断发展,走心机的数控系统越来越灵活,可以根据用户的具体需求进行定制和优化。下面,我将从几个方面来详细解答这个问题: 一、系统定制的必要性 1. 满足不同加工需求…...
PHP实现OID(Object identifier)的编码和解码
转载于:https://bkssl.com/document/php_oid_encode_decode.html <?phpclass ASN1ObjectIdentifier {/*** OID字符串编码为二进制数据* param string $oid 字符串形式的OID* return string*/public static function encode($oid){$parts explode(., $oid);$pa…...
CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型
CVPR 2025 | MIMO:支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题:MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者:Yanyuan Chen, Dexuan Xu, Yu Hu…...
MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例
一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...
Docker 运行 Kafka 带 SASL 认证教程
Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明:server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...
DAY 47
三、通道注意力 3.1 通道注意力的定义 # 新增:通道注意力模块(SE模块) class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...
江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命
在华东塑料包装行业面临限塑令深度调整的背景下,江苏艾立泰以一场跨国资源接力的创新实践,重新定义了绿色供应链的边界。 跨国回收网络:废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点,将海外废弃包装箱通过标准…...
[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...
Robots.txt 文件
什么是robots.txt? robots.txt 是一个位于网站根目录下的文本文件(如:https://example.com/robots.txt),它用于指导网络爬虫(如搜索引擎的蜘蛛程序)如何抓取该网站的内容。这个文件遵循 Robots…...
【决胜公务员考试】求职OMG——见面课测验1
2025最新版!!!6.8截至答题,大家注意呀! 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:( B ) A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...
WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)
一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解,适合用作学习或写简历项目背景说明。 🧠 一、概念简介:Solidity 合约开发 Solidity 是一种专门为 以太坊(Ethereum)平台编写智能合约的高级编…...
数据库分批入库
今天在工作中,遇到一个问题,就是分批查询的时候,由于批次过大导致出现了一些问题,一下是问题描述和解决方案: 示例: // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...
