力扣labuladong一刷day53天LFU 算法

力扣labuladong一刷day53天LFU 算法

一、460. LFU 缓存

题目链接:https://leetcode.cn/problems/lfu-cache/description/

class LFUCache {HashMap<Integer, Integer> ktv;HashMap<Integer, Integer> ktf;HashMap<Integer, LinkedHashSet<Integer>> ftk;int cap;int minFreq;public LFUCache(int capacity) {ktv = new HashMap<>();ktf = new HashMap<>();ftk = new HashMap<>();cap = capacity;minFreq = 0;}public int get(int key) {if (!ktv.containsKey(key)) {return -1;}Integer v = ktv.get(key);up(key);return v;}private void up(int key) {Integer f = ktf.get(key);ftk.get(f).remove(key);ftk.putIfAbsent(f+1, new LinkedHashSet<>());ftk.get(f + 1).add(key);ktf.put(key, f+1);if (ftk.get(f).isEmpty()) {ftk.remove(f);if (minFreq == f) {minFreq++;}}}public void put(int key, int value) {if (ktv.containsKey(key)) {ktv.put(key, value);up(key);return;}if (ktv.size() == cap) {Integer next = ftk.get(minFreq).iterator().next();ftk.get(minFreq).remove(next);if (ftk.get(minFreq).isEmpty()) {ftk.remove(minFreq);}ktv.remove(next);ktf.remove(next);}ktv.put(key, value);ktf.put(key, 1);ftk.putIfAbsent(1, new LinkedHashSet<>());ftk.get(1).add(key);minFreq = 1;}}/*** Your LFUCache object will be instantiated and called as such:* LFUCache obj = new LFUCache(capacity);* int param_1 = obj.get(key);* obj.put(key,value);*/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/598312.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

力扣题:字符串变换-1.5

力扣题-1.5 [力扣刷题攻略] Re&#xff1a;从零开始的力扣刷题生活 力扣题1&#xff1a;482. 密钥格式化 解题思想&#xff1a;首先先将破折号去除,并将所有字母转换为大写,然后计算第一组的长度,进行结果字符串的拼接,如果第一组的长度为0,则需要删除开头的’-符号 class S…

互联网加竞赛 基于CNN实现谣言检测 - python 深度学习 机器学习

文章目录 1 前言1.1 背景 2 数据集3 实现过程4 CNN网络实现5 模型训练部分6 模型评估7 预测结果8 最后 1 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 基于CNN实现谣言检测 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;学长非常推荐&am…

力扣-135.分发糖果

135.分发糖果 n 个孩子站成一排。给你一个整数数组 ratings 表示每个孩子的评分。 你需要按照以下要求&#xff0c;给这些孩子分发糖果&#xff1a; 每个孩子至少分配到 1 个糖果。 相邻两个孩子评分更高的孩子会获得更多的糖果。 请你给每个孩子分发糖果&#xff0c;计算并返…

BUUCTF crypto做题记录(5)新手向

一、传统知识古典密码 加上一个数&#xff0c;就有点移位加密的味道&#xff0c;很有可能就是凯撒加密 辛卯28&#xff0c;癸巳30&#xff0c;丙戌23&#xff0c;辛未8&#xff0c;庚辰17&#xff0c;癸酉10&#xff0c;己卯16&#xff0c;癸巳30 加1之后&#xff0c;28变29&a…

详解编码与调制

编码与调制是现代通信领域的重要概念。在信息传输过程中&#xff0c;编码和调制起着至关重要的作用&#xff0c;它们帮助将数字信号转化为模拟信号&#xff0c;从而实现高效、可靠的数据传输。本文将从编码和调制的基本概念、常见的编码和调制技术以及其在通信领域的应用等方面…

微商城怎么弄才能开通呢?

​微商城的开通&#xff0c;对于许多商家来说&#xff0c;是进入移动电商领域的重要一步。它不仅能帮助你扩大销售渠道&#xff0c;还能让你更好地管理和服务你的客户。那么&#xff0c;微商城怎么弄才能开通呢&#xff1f; 1、注册微信公众号&#xff1a;首先&#xff0c;你需…

麒麟KYLINOS操作系统上扩容系统盘

原文链接&#xff1a;麒麟KYLINOS操作系统上扩容系统盘 hello&#xff0c;大家好啊&#xff01;继之前我们讨论了如何在统信UOS上扩容数据盘之后&#xff0c;今天我要给大家带来的是在麒麟KYLINOS操作系统上扩容系统盘与数据盘的方法。随着数据的不断增长&#xff0c;系统盘或数…

【开题报告】基于SSM的动物保护知识科普平台的设计与实现

1.研究背景 动物保护是一个全球性的议题&#xff0c;涉及到生态环境、物种多样性和可持续发展等重要领域。随着人们环保意识的提高和社会对动物福利的关注度的增加&#xff0c;动物保护知识科普的重要性日益凸显。 在过去的几十年里&#xff0c;动物保护组织和机构开展了大量…

微软 Power Platform 使用Power Automate发送邮件以Dataverse作为数据源的附件File Column

微软Power Platform使用Power Automate发送邮件添加Power Apps以Dataverse作为数据源的附件File Column方式 目录 微软Power Platform使用Power Automate发送邮件添加Power Apps以Dataverse作为数据源的附件File Column方式1、需求背景介绍2、附件列File Column介绍3、如何在Po…

亚马逊多店铺运营:如何有效降低账号关联风险?

在亚马逊平台进行多店铺运营时&#xff0c;账号关联风险是卖家需要特别关注的问题。本文将介绍一些有效的方法&#xff0c;以帮助卖家降低账号关联风险&#xff0c;保护多店铺运营的稳定和持续性。 一、避免使用相同的IP地址和设备 亚马逊通过IP地址和设备指纹等信息来判断账…

分布式之任务调度Elastic-Job学习二

4 Spring 集成与分片详解 ejob-springboot 工程 4.1 pom 依赖 <properties><elastic-job.version>2.1.5</elastic-job.version> </properties> <dependency><groupId>com.dangdang</groupId><artifactId>elastic-job-lite-…

安全cdn有哪些优势

1. 免备案&#xff1a;在中国大陆地区&#xff0c;进行网站建设需要先进行备案手续&#xff0c;而安全cdn可以避免这一繁琐的步骤&#xff0c;节省时间和精力。 2. 精品线路&#xff1a;安全cdn使用的是覆盖范围更广、速度更快的香港CN2 GIA优化线路。 3. 高速稳定&#xff1a…

邦芒攻略:让HR看得上的简历五大要素

简历是求职的敲门砖。只有通过简历筛选&#xff0c;HR给你面试通知&#xff0c;你才有机会面试&#xff0c;距离你的心仪的公司和职位又近了一步。 1、简历上的求职目标一定要简洁明确。简历上的内容一定要能与所应聘的岗位所呼应&#xff0c;无 关紧要的信息最好不要出现&…

Xpath的问题:为什么在DOM中确定存在(可见)的元素,用//表达式匹配不到(附解决办法)

今天遇到一个很有意思的问题&#xff0c;我的爬取的目标页面上有时会出现一个弹窗&#xff0c;它挡住我点击其它按钮了&#xff0c;我想找到它的关闭按钮&#xff0c;自动点击一下关闭掉&#xff0c;本来是很简单的事情&#xff0c;但偏偏出问题了&#xff0c;DOM中看到的html是…

在vue3中使用Cesium保姆篇

1.首先新建一个vue项目 Vue.js - 渐进式 JavaScript 框架 | Vue.js 可以直接到管网中查看命令通过npm来创建一个vue3的项目 然后通过命令下载1.99的版本的cesium和plugin npm i cesium1.99 vite-plugin-cesium 下载完了以后 2.引入cesium 首先找到vue的vite.config.js …

[LitCTF 2023]这是什么?SQL !注一下 !

[LitCTF 2023]这是什么&#xff1f;SQL &#xff01;注一下 &#xff01; wp 题目描述&#xff1a;为了安全起见多带了几个套罢了o(▽)q 页面内容&#xff08;往下滑&#xff09;&#xff1a; SQL 语句已给出&#xff0c;无非是更换了闭合方式。 先输个 1 试试&#xff1a; …

【unity】基于Obi的绳/杆蓝图、绳杆区别及其创建方法

绳索 是通过使用距离和弯曲约束将粒子连接起来而形成的。由于规则粒子没有方向(只有位置)&#xff0c;因此无法模拟扭转效应(维基百科)&#xff0c;绳子也无法保持其静止形状。然而&#xff0c;与杆不同的是&#xff0c;绳索可以被撕裂/劈开&#xff0c;并且可以在运行时改变其…

轻量对象存储 LighthouseCOS 用户实践征文

产品使用攻略、上云技术实践&#xff0c;有奖征集&#xff0c;多重好礼等您带回家&#xff5e; 存储桶一键挂载轻量应用服务器&#xff0c;简单易用&#xff0c;腾讯云轻量对象存储用户实践征文活动特惠&#xff1a;腾讯云轻量云专场特惠活动。 投稿说明 1. 注册/登录腾讯云账…

【EI会议征稿通知】第三届智能电网与绿色能源国际学术会议(ICSGGE 2024)

第三届智能电网与绿色能源国际学术会议&#xff08;ICSGGE 2024&#xff09; 2024 3rd International Conference on Smart Grid and Green Energy 2024年第三届智能电网与绿色能源国际学术会议&#xff08;ICSGGE 2024&#xff09;将于2024年4月19-21日在中国成都举行。会议…

探索架构之美 | 小米分享架构师的方法论

大家好&#xff0c;我是小米&#xff01;今天我们要聊的话题可是相当精彩——“架构师的方法论”&#xff01;作为一名热爱技术的小伙伴&#xff0c;我深知在软件开发领域&#xff0c;拥有一套科学的方法论是多么的重要。所以&#xff0c;不废话&#xff0c;让我们一起踏上探索…