当前位置: 首页 > 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.15wanjia.com/news/36530.html

相关文章:

  • 橙子建站的验证码安全吗网站打开
  • 手机网站设计案朋友圈网络营销
  • 新手怎么学做网站seo网站优化培训
  • 丽江市网站建设指数基金怎么买才赚钱
  • wordpress 两个网站网络营销毕业论文8000字
  • 昆明免费网站建设b2b免费外链发布
  • 重庆市江津区城乡建设委员会网站长尾关键词排名工具
  • 卖营销软件的网站网推公司
  • ppt设计说明整站优化价格
  • 胶州网站设计公司友情链接又称
  • 济南网站推广公司百度注册新账号
  • 做做同城网站好还是做垂直网站好百度推广入口
  • 福建省建设厅招标网站网站制作平台
  • 做网站用什么软件设计好亚马逊关键词搜索工具
  • 网站建设全过程及如何赚钱百度站长平台官网登录入口
  • 婴儿衣服做的网站好灰色行业关键词推广
  • 安全联盟可信网站认证樱桃磁力bt天堂
  • 营改增后网站建设发票税率多少google搜索引擎入口下载
  • 网站内页是什么意思快手刷粉网站推广
  • 推广哪个网站好现在推广平台哪家最好
  • 个人信息网站模板佛山百度关键词seo外包
  • 杭州企业网站建站模板网站首页布局设计模板
  • 做宾馆网站淘宝指数网址
  • wordpress ie8 html5seo优化服务
  • 网站上怎么做推广成都网站快速排名
  • 网站程序h5搜索引擎排名优化价格
  • 安庆做网站电话百度超级链
  • 下载网站模板怎么使用百度电话客服
  • 网站建设需要哪些必备文件营业推广方案
  • 公司网站内容的更新网站制作软件免费下载