备案网站怎么做室内设计网站平台

张小明 2026/1/16 2:53:32
备案网站怎么做,室内设计网站平台,艺缘网站的建设,12306网站开发时间对前端开发者而言#xff0c;学习算法绝非为了“炫技”。它是你从“页面构建者”迈向“复杂系统设计者”的关键阶梯。它将你的编码能力从“实现功能”提升到“设计优雅、高效解决方案”的层面。从现在开始#xff0c;每天投入一小段时间#xff0c;结合前端场景去理解和练习…对前端开发者而言学习算法绝非为了“炫技”。它是你从“页面构建者”迈向“复杂系统设计者”的关键阶梯。它将你的编码能力从“实现功能”提升到“设计优雅、高效解决方案”的层面。从现在开始每天投入一小段时间结合前端场景去理解和练习你将会感受到自身技术视野和问题解决能力的质的飞跃。------ 算法资深前端开发者的进阶引擎LeetCode 146. LRU 缓存机制1. 题目描述1.1 问题要求设计一个LRU最近最少使用缓存机制实现以下两个操作get(key)如果密钥key存在于缓存中则返回密钥的值否则返回-1put(key, value)如果密钥不存在则写入数据当缓存容量达到上限时删除最久未使用的数据1.2 注意事项所有操作get和put必须在O(1)时间复杂度内完成当缓存达到容量上限时put操作需要淘汰最久未使用的数据即使只是查询 (get) 数据该数据也会变为最近使用的数据2. 问题分析2.1 核心需求分析LRU缓存的核心需求是快速访问 快速淘汰。这意味着我们需要快速查找通过key快速找到对应值哈希表的特性快速删除和插入能够快速将某个元素移到最近使用位置或在容量满时删除最久未使用的元素链表的特性维护访问顺序记录每个key的访问时间顺序2.2 前端视角的理解在前端开发中LRU缓存的应用非常广泛浏览器缓存机制Vue/React的keep-alive组件图片/资源缓存策略API响应缓存3. 解题思路3.1 可行思路分析3.1.1 思路一数组/对象 时间戳不可行使用对象存储键值对记录每个key的最后访问时间每次操作时更新时间戳淘汰时遍历查找最旧的时间缺点淘汰时需要O(n)遍历不满足O(1)要求3.1.2 思路二Map的天然特性ES6 MapMap按照插入顺序维护键值对最后插入的在最后每次访问时先删除再重新插入可以维护顺序复杂度O(1)时间完成所有操作3.1.3 思路三哈希表 双向链表经典解法哈希表提供O(1)的查找双向链表提供O(1)的删除和插入维护访问顺序头节点表示最近访问尾节点表示最久未访问3.2 最优解选择思路三哈希表双向链表是最经典的LRU实现方案虽然ES6的Map也可以实现但了解底层原理对理解缓存机制更有帮助。4. 各思路代码实现4.1 思路二ES6 Map实现classLRUCache{constructor(capacity){this.capacitycapacity;this.cachenewMap();// Map天然保持插入顺序}get(key){if(!this.cache.has(key))return-1;// 获取值constvaluethis.cache.get(key);// 删除后重新插入保证在Map最后最近使用this.cache.delete(key);this.cache.set(key,value);returnvalue;}put(key,value){// 如果key已存在先删除if(this.cache.has(key)){this.cache.delete(key);}// 如果容量已满删除第一个最久未使用elseif(this.cache.sizethis.capacity){constfirstKeythis.cache.keys().next().value;this.cache.delete(firstKey);}// 插入新值this.cache.set(key,value);}}4.2 思路三哈希表 双向链表实现// 双向链表节点classListNode{constructor(key,value){this.keykey;this.valuevalue;this.prevnull;this.nextnull;}}classLRUCache{constructor(capacity){this.capacitycapacity;this.cachenewMap();// 哈希表key - 链表节点this.size0;// 创建虚拟头尾节点简化边界判断this.headnewListNode(0,0);// 最近使用this.tailnewListNode(0,0);// 最久未使用this.head.nextthis.tail;this.tail.prevthis.head;}// 获取节点get(key){if(!this.cache.has(key))return-1;constnodethis.cache.get(key);// 移动到链表头部表示最近使用this.moveToHead(node);returnnode.value;}// 插入节点put(key,value){if(this.cache.has(key)){// 更新已存在的节点constnodethis.cache.get(key);node.valuevalue;this.moveToHead(node);}else{// 创建新节点constnewNodenewListNode(key,value);this.cache.set(key,newNode);this.addToHead(newNode);this.size;// 如果超过容量删除尾部节点if(this.sizethis.capacity){consttailNodethis.removeTail();this.cache.delete(tailNode.key);this.size--;}}}// 将节点移动到头部最近使用moveToHead(node){this.removeNode(node);this.addToHead(node);}// 从链表中删除节点removeNode(node){node.prev.nextnode.next;node.next.prevnode.prev;}// 在头部添加节点addToHead(node){node.prevthis.head;node.nextthis.head.next;this.head.next.prevnode;this.head.nextnode;}// 删除尾部节点最久未使用removeTail(){consttailNodethis.tail.prev;this.removeNode(tailNode);returntailNode;}}5. 各实现思路的复杂度、优缺点对比表格实现方案时间复杂度空间复杂度优点缺点适用场景ES6 Map实现get: O(1)put: O(1)O(capacity)1. 代码简洁易于理解2. 利用语言特性3. 开发效率高1. 隐藏了底层原理2. Map内部实现不透明实际项目开发、快速原型哈希表双向链表get: O(1)put: O(1)O(capacity)1. 展示完整缓存机制原理2. 面试中展现扎实基础3. 可控性更强1. 代码相对复杂2. 需要手动维护链表面试场景、学习缓存原理、需要定制化场景6. 总结6.1 技术要点总结LRU核心思想最近使用的数据在未来更可能被使用应该保留数据结构选择哈希表提供快速查找链表维护使用顺序边界处理使用虚拟头尾节点可显著简化代码逻辑时间复杂度保证所有操作必须为O(1)这是LRU缓存设计的核心要求6.2 前端实际应用场景6.2.1 浏览器缓存浏览器对静态资源JS、CSS、图片的缓存采用类似LRU的策略HTTP缓存头Cache-Control控制缓存行为6.2.2 Vue Keep-Alive组件template keep-alive :max10 !-- 最多缓存10个组件实例 -- component :iscurrentComponent/component /keep-alive /templateVue的keep-alive内部实现就使用了LRU缓存策略当超过最大缓存数量时自动销毁最久未使用的组件实例。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

深圳蚂蚁网络网站建设网站建设与制作教程

告别邮件混乱:用Dify.AI构建你的智能邮件管家 【免费下载链接】dify 一个开源助手API和GPT的替代品。Dify.AI 是一个大型语言模型(LLM)应用开发平台。它整合了后端即服务(Backend as a Service)和LLMOps的概念&#xf…

张小明 2026/1/3 10:54:19 网站建设

纺织行业网站怎么做商业网站开发模式

突破长文本处理瓶颈:字节跳动AHN技术如何实现3倍效率提升 【免费下载链接】AHN-DN-for-Qwen-2.5-Instruct-3B 项目地址: https://ai.gitcode.com/hf_mirrors/ByteDance-Seed/AHN-DN-for-Qwen-2.5-Instruct-3B 在当今大模型应用中,长文本处理已成…

张小明 2025/12/24 7:31:07 网站建设

河北邢台移动网站建设wordpress 4.4.1 中文

Langchain-Chatchat Loki轻量日志系统知识平台 在企业智能化转型的浪潮中,如何安全、高效地激活沉睡在PDF、Word和内部文档中的私有知识,成为一道关键命题。尤其在金融、医疗等对数据合规性要求极高的行业,将敏感信息上传至公有云大模型几乎不…

张小明 2025/12/24 7:30:03 网站建设

在线课堂网站开发珠海中企网站建设

鸣潮智能自动化助手:告别重复劳动,重拾游戏乐趣 【免费下载链接】ok-wuthering-waves 鸣潮 后台自动战斗 自动刷声骸上锁合成 自动肉鸽 Automation for Wuthering Waves 项目地址: https://gitcode.com/GitHub_Trending/ok/ok-wuthering-waves 还…

张小明 2026/1/15 9:12:15 网站建设

网站cms系统哪个好用吗wordpress网站好优化吗

第一章:纤维协程并发测试概述在现代高并发系统中,纤维(Fiber)作为一种轻量级线程模型,被广泛应用于提升程序的吞吐能力和资源利用率。与操作系统线程相比,纤维由用户态调度器管理,具有更低的上下…

张小明 2026/1/15 11:27:01 网站建设

花生壳软件做的网站网站信息维护方案

Windows 8 任务管理器使用指南 1. 切换和启动任务 当系统死机,无法正常使用任务栏,而你又想单独操作已打开的程序窗口时,任务管理器能帮你实现这一需求。 1.1 切换到运行中的程序 若要将一个正在运行的程序窗口置于屏幕最上层并使其成为活动窗口,可按以下步骤操作: 1…

张小明 2026/1/10 17:38:27 网站建设