Search⌘ K
AI Features

Problem: LRU Cache

Understand how to implement an LRU cache by combining a doubly linked list with a hash map to achieve constant time get and put operations. Explore managing cache capacity, updating recent usage order, and evicting the least recently used items efficiently.

Statement

Design a data structure that follows the constraints of a least recently used (LRU) cache.

Implement the LRUCache class with the following operations:

  • LRUCache(int capacity): Initializes the LRU cache with a positive size capacity.

  • int get(int key): Returns the value associated with key if it exists in the cache. Otherwise, returns 1-1.

  • void put(int key, int value): Updates the value of key if it already exists in the cache. Otherwise, inserts the key\-value pair into the cache. If this insertion causes the number of keys to exceed capacity, the least recently used key must be evicted.

Note: Both get and put must operate in O(1)O(1) average time complexity.

Constraints:

  • 11 \leq capacity 3000\leq 3000

  • 00 \leq key ...