零题:算法(leetcode,附思维导图+全解)300题(146)LRU缓存1题目描述2解概览(思维导图)三全解1方案11)代码://方案1“Self.Hash”。//提示:遇到O(1)的get和put操作时,优先考虑哈希表(JS中的Map数据结构)。/***@param{number}容量*/varLRUCache=function(capacity){this.capacity=capacity;这个.curCapacity=0;//注意:最近使用的键越多,它越会放在地图的后面!this.map=newMap();};/***@param{number}key*@return{number}*/LRUCache.prototype.get=function(key){const{map}=this;让resVal=-1;//边界1:get操作,如果key已经存在,//先删除key,然后把key放在map的末尾——说明key最近被使用过!如果(map.has(key)){resVal=map.get(key);地图.删除(键);map.set(key,resVal);}returnresVal;};/***@param{number}key*@param{number}value*@return{void}*/LRUCache.prototype.put=function(key,value){const{capacity,curCapacity,地图}=这个;//边界2:put操作,如果已经有这样的key的话,//先删除key,然后把key放到map的末尾——说明这个key最近被使用过!if(map.has(key)){map.delete(key);地图集(键,值);返回;}//边界3:put操作,如果当前无法容纳(即curCapacity>=capacity),//则删除map的第一个key,将新的key放在map-table的末尾表示该密钥最近被使用过!if(curCapacity>=capacity){for(const[key,val]ofmap){map.delete(key);休息;}map.set(key,value);}//边界4:put操作,如果current可以放下(即curCapacity
