This content originally appeared on DEV Community and was authored by codingpineapple
Description:
Design a data structure that follows the constraints of a Least Recently Used (LRU) cache.
Implement the LRUCache class:
LRUCache(int capacity) Initialize the LRU cache with positive size capacity.
int get(int key) Return the value of the key if the key exists, otherwise return -1.
void put(int key, int value) Update the value of the key if the key exists. Otherwise, add the key-value pair to the cache. If the number of keys exceeds the capacity from this operation, evict the least recently used key.
Solution:
class LRUCache {
constructor(capacity) {
this.cache = new Map();
this.capacity = capacity;
}
get(key) {
if (!this.cache.has(key)) return -1;
const v = this.cache.get(key);
this.cache.delete(key);
this.cache.set(key, v);
return this.cache.get(key);
};
put(key, value) {
if (this.cache.has(key)) {
this.cache.delete(key);
}
this.cache.set(key, value);
if (this.cache.size > this.capacity) {
this.cache.delete(this.cache.keys().next().value); // keys().next().value returns first item's key
}
};
}
This content originally appeared on DEV Community and was authored by codingpineapple
codingpineapple | Sciencx (2021-06-01T02:19:46+00:00) LeetCode 146. LRU Cache (javascript solution). Retrieved from https://www.scien.cx/2021/06/01/leetcode-146-lru-cache-javascript-solution/
Please log in to upload a file.
There are no updates yet.
Click the Upload button above to add an update.