This problem was asked by Google.
Implement an LRU (Least Recently Used) cache. It should be able to be initialized with a cache size
n, and contain the following methods:
set(key, value): sets
value. If there are already n items in the cache and we are adding a new item, then it should also remove the least recently used item.
get(key): gets the value at
key. If no such key exists, return null.
Each operation should run in