Design and implement an LRU (Least Recently Used) Cache that supports the following operations in O(1) average time:
get(key)
:
key
if it exists in the cache.
-1
.
key
as
most recently used
.
put(key, value)
:
(key, value)
pair.
key
as
most recently used
.
capacity
, evict the
least recently used
key.
capacity
.
capacity
is a positive integer.
Given capacity = 2:
put(1, 1)
put(2, 2)
get(1)
→ returns
1
(key
1
becomes most recently used)
put(3, 3)
→ evicts key
2
get(2)
→ returns
-1
put(4, 4)
→ evicts key
1
get(1)
→ returns
-1
get(3)
→ returns
3
get(4)
→ returns
4