Skip to content

Commit 238028a

Browse files
committed
lru cache update
1 parent 486700e commit 238028a

1 file changed

Lines changed: 1 addition & 43 deletions

File tree

Sprint-2/implement_lru_cache/lru_cache.py

Lines changed: 1 addition & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -6,63 +6,21 @@ def __init__(self, limit):
66
raise ValueError("Limit must be positive")
77

88
self.limit = limit
9-
<<<<<<< HEAD
10-
self.cache = {} # key -> node
11-
self.head = None # Most recently used
12-
self.tail = None # Least recently used
13-
14-
# ---------------------
15-
# Internal helpers
16-
# ---------------------
17-
18-
def _remove_node(self, node):
19-
if node.previous:
20-
node.previous.next = node.next
21-
else:
22-
self.head = node.next
23-
24-
if node.next:
25-
node.next.previous = node.previous
26-
else:
27-
self.tail = node.previous
28-
29-
node.previous = None
30-
node.next = None
31-
32-
def _add_to_head(self, node):
33-
node.next = self.head
34-
node.previous = None
35-
36-
if self.head:
37-
self.head.previous = node
38-
else:
39-
self.tail = node
40-
41-
self.head = node
42-
43-
# ---------------------
44-
# Public API
45-
# ---------------------
46-
=======
479
self.cache = OrderedDict()
48-
>>>>>>> fc65c37 (lru cache update)
4910

5011
def get(self, key):
5112
if key not in self.cache:
5213
return None
53-
# Move key to the end (most recently used)
14+
5415
value = self.cache.pop(key)
5516
self.cache[key] = value
5617
return value
5718

5819
def set(self, key, value):
5920
if key in self.cache:
60-
# Update existing and move to end
6121
self.cache.pop(key)
6222

6323
elif len(self.cache) >= self.limit:
64-
# Remove least recently used (first item)
6524
self.cache.popitem(last=False)
6625

67-
# Insert as most recently used
6826
self.cache[key] = value

0 commit comments

Comments
 (0)