Your question is Custom LRU Cache In O(1). Start with the requirements on the right.
Run and submit as often as you like. When you're ready, talk me through your approach or go straight to the code.
Microsoft Edge maintains bounded in-memory caches where recently accessed entries should remain available while older entries are evicted. Implement a custom Least Recently Used (LRU) cache with constant-time operations.
Use a hash map for direct key lookup and a doubly linked list to track usage order. The most recently used item must be at the front of the list, and the least recently used item must be at the back.
Implement lru_cache_operations(operations, capacity). operations is a list of commands:
['put', key, value] inserts or updates a key. The command produces no output.['get', key] returns the value if present and marks the key as most recently used. Return -1 if absent.Return a list containing the results of all get commands, in order. Keys and values are integers. Updating an existing key must also mark it as most recently used. When inserting into a full cache, evict the least recently used key.
def lru_cache_operations(operations, capacity):