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

小灯具网站建设方案个人网站备案需要什么资料

小灯具网站建设方案,个人网站备案需要什么资料,企业网站颜色选择,多少钱网站设计460. LFU 缓存 解题思路 get操作 返回key对应的val 然后增加对应的freq插入操作 如果key已经存在 直接进行更新 如果不存在 但是容器已经满了 直接进行删除freq最小的Key 之后进行插入 class LFUCache {// key到 val的映射 KVHashMap<Integer,Integer> keyToVal;// …

460. LFU 缓存

解题思路

  • get操作 返回key对应的val 然后增加对应的freq
  • 插入操作 如果key已经存在 直接进行更新 如果不存在 但是容器已经满了 直接进行删除freq最小的Key 之后进行插入

class LFUCache {// key到  val的映射   KVHashMap<Integer,Integer> keyToVal;// 从key到freq的映射  KFHashMap<Integer,Integer> keyToFreq;// 一个频率对应多个 key  舍弃最久未使用的  FKHashMap<Integer,LinkedHashSet<Integer>> freqToKeys;// 记录最小的频率int minFreq;// 记录LFU 缓存的最大容量int cap;public LFUCache(int capacity) {keyToVal = new HashMap<>();keyToFreq = new HashMap<>();freqToKeys = new HashMap<>();this.cap = capacity;this.minFreq = 0;}// 返回对应key的val  然后增加对应的freqpublic int get(int key) {if(!keyToVal.containsKey(key)){return -1;// 返回-1  说明没找到}// 增加key对应的freq + 1  因为查找操作一次increaseFreq(key);return keyToVal.get(key);// 找到val}public void put(int key, int value) {// 如果key 已经存在直接更新if(this.cap <= 0){return;}if(keyToFreq.containsKey(key)){// 修改val即可keyToVal.put(key,value);// 对应的freq加一increaseFreq(key);return;}// key 不存在  需要插入 如果容量没有满 直接插入  如果已满 直接删除 freq最小的keyif(this.cap <= keyToVal.size()){removeMinFreqKey();// 删除freq最小的key}keyToVal.put(key,value);keyToFreq.put(key,1);// 插入KF 表  一种freq对应多种keyfreqToKeys.putIfAbsent(1,new LinkedHashSet<>());freqToKeys.get(1).add(key);// 获取频率  添加一种key// 插入新的key之后最小的freq肯定是1this.minFreq = 1;}private void removeMinFreqKey(){// freq最小的key列表  通过 FKLinkedHashSet<Integer> keyList = freqToKeys.get(this.minFreq);// 获取所有的key// 最先被插入的key就是该被淘汰的keyint deleteKey = keyList.iterator().next();// 更新FK keyList.remove(deleteKey);if(keyList.isEmpty()){// 如果key列表是空的  说明都没有了直接删除freqfreqToKeys.remove(this.minFreq);}// 更新KVkeyToVal.remove(deleteKey);// 更新KFkeyToFreq.remove(deleteKey);}private void increaseFreq(int key){int freq = keyToFreq.get(key);// 更新 KFkeyToFreq.put(key,freq + 1);// 更新FK// 将key 从freq对应的列表中删除freqToKeys.get(freq).remove(key);// 将key加入freq + 1 对应的列表freqToKeys.putIfAbsent(freq + 1,new LinkedHashSet<>());// 创建新的freqToKeys.get(freq + 1).add(key);// 如果对应的列表空if(freqToKeys.get(freq).isEmpty()){freqToKeys.remove(freq);if(freq == this.minFreq){this.minFreq++;}}}
}/*** 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.yayakq.cn/news/944671/

相关文章:

  • 临沂网站设计建设Wordpress仿appstore
  • 网站建设刂搜金手指下拉贰伍icp备案 网站备案
  • 专业网站开发培训注册一家公司
  • 外包网站建设哪家好wordpress字体编辑器
  • wordpress网站安全性做网站的财务会涉及到的科目
  • 上海建设企业网站WordPress网络功能
  • 营销型企业网站系统模板下载uv推广平台
  • 东莞购物网站建设国外做海报的网站
  • 阿里云企业网站备案流程怎么做网站链接
  • 烟台小学网站建设浙江融兴建设有限公司网站
  • 网站被泛解析设计漂亮的网站
  • php英文网站源码南京网站建设公司 ww
  • 盐城网站建设优化建站做自动化设备哪个网站
  • 郑州市建设投资集团公司网站seo快速软件
  • 安微凤阳县建设局网站建设网站iss
  • seo 网站排名乐清seo公司推荐
  • 学编程后悔死了小红书seo关键词优化多少钱
  • 设计网站架构个人做淘宝客网站有哪些
  • 海珠高端网站建设化工网站模板下载
  • 嘉定网站设计制作报价app开发网站模板
  • 重庆网站建设重庆网站制作百度的seo关键词优化怎么弄
  • 电商app制作费用一览表广告优化师工作内容
  • 农家乐网站规划与建设方案2022年全球3月解封
  • 雅客网站建设网站做中英版
  • 相亲网站做期货现货贵金属的人哈尔滨网站免费制作
  • 金华做网站公司百度联盟推广
  • 下载别人做的ppt的网站三字顺口名字公司
  • 网站设计需求方案柳州做网站seo哪家好
  • 咸宁有做网站的吗wordpress生成了太多图片
  • 四川城乡建设部网站首页学校 html5 网站 案例