Dataford
Interview QuestionsInterview GuidesExperiencesMock InterviewsPricing
Get started

Custom LRU Cache In O(1)

EasyPython00:00
Practice interviewer
In session
5 left
00:00

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.

You need to log in / sign up to run or submit.

Problem

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.

Formal Specification

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.

Constraints

  • 1 <= capacity <= 10^5
  • 1 <= len(operations) <= 2 * 10^5
  • Keys and values are integers in the range [-10^9, 10^9].
  • Every command is valid and follows one of the specified formats.

Function Signature

def lru_cache_operations(operations, capacity):
Your solutionPython 3
You need to log in / sign up to run or submit.
Run your code to see test output