news 2026/8/17 8:51:36

有时间限制的缓存

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
有时间限制的缓存

题目链接:

2622. 有时间限制的缓存 - 力扣(LeetCode)

思路:

构建一个 map ,并利用 setTimeout 思想,到了对应的 duration 后 去删除对应 map 的 key 对应的值,我们存入 map 里面的值 包含 value 本身 和 setTimeout 返回的 一个数字

这里需要注意 我本身是采用 中括号形式去访问对象,但是leetcode 不能采用这种方式,大家老老实实采用 . 访问吧

代码:

var TimeLimitedCache = function () { this.cache = new Map() }; /** * @param {number} key * @param {number} value * @param {number} duration time until expiration in ms * @return {boolean} if un-expired key already existed */ TimeLimitedCache.prototype.set = function (key, value, duration) { const valueInCache = this.cache.get(key) if (valueInCache) { clearTimeout(valueInCache.timeout) } let timeout = setTimeout(() => this.cache.delete(key), duration) this.cache.set(key, { value, timeout }) return Boolean(valueInCache) }; /** * @param {number} key * @return {number} value associated with key */ TimeLimitedCache.prototype.get = function (key) { if (this.cache.has(key)) return this.cache.get(key).value else return -1 }; /** * @return {number} count of non-expired keys */ TimeLimitedCache.prototype.count = function () { return this.cache.size }; /** * const timeLimitedCache = new TimeLimitedCache() * timeLimitedCache.set(1, 42, 1000); // false * timeLimitedCache.get(1) // 42 * timeLimitedCache.count() // 1 */
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/14 16:12:48

Linux文件路径

Linux和Windows在文件路径表示上有着显著的差别,这些差异源自于它们不同的文件系统设计和历史改革1.目录分隔符Linux / Unix / macOS:使用正斜杠 "/" 【示例】:/home/hadoop/data/input.txtWindows传统上使用反斜杠"…

作者头像 李华
网站建设 2026/7/14 16:12:49

TQVaultAE:3大革命性突破解放泰坦之旅装备管理难题

TQVaultAE:3大革命性突破解放泰坦之旅装备管理难题 【免费下载链接】TQVaultAE Extra bank space for Titan Quest Anniversary Edition 项目地址: https://gitcode.com/gh_mirrors/tq/TQVaultAE ❓当你在《泰坦之旅周年版》中辛苦刷到传奇装备却因背包满溢不…

作者头像 李华
网站建设 2026/7/17 10:04:49

如何突破VK视频下载限制?VK-Video-Downloader全方位解决方案

如何突破VK视频下载限制?VK-Video-Downloader全方位解决方案 【免费下载链接】VK-Video-Downloader Скачивайте видео с сайта ВКонтакте в желаемом качестве 项目地址: https://gitcode.com/gh_mirrors/vk/VK-V…

作者头像 李华
网站建设 2026/7/14 16:13:03

构建企业级权限导航系统:Layuimini无限级菜单从设计到落地指南

构建企业级权限导航系统:Layuimini无限级菜单从设计到落地指南 【免费下载链接】layuimini zhongshaofa/layuimini: Layuimini 是基于 layui 和 Vue.js 的轻量级前端管理后台框架,提供了一套简洁美观的UI组件,方便快速搭建企业级中后台管理系…

作者头像 李华
网站建设 2026/7/14 16:13:01

YimMenu技术指南:从基础应用到生态共建

YimMenu技术指南:从基础应用到生态共建 【免费下载链接】YimMenu YimMenu, a GTA V menu protecting against a wide ranges of the public crashes and improving the overall experience. 项目地址: https://gitcode.com/GitHub_Trending/yi/YimMenu 一、核…

作者头像 李华
网站建设 2026/7/14 16:13:01

5个步骤掌握Tesseract:从环境部署到实用OCR识别的高效指南

5个步骤掌握Tesseract:从环境部署到实用OCR识别的高效指南 【免费下载链接】tesseract Tesseract Open Source OCR Engine (main repository) 项目地址: https://gitcode.com/gh_mirrors/tes/tesseract Tesseract是一款由Google主导开发的开源OCR引擎&#x…

作者头像 李华