Design and implement a data structure for Least Recently Used (LRU) cache. It should support the get(key) and put(key, value) operations.
Read this post on callicoder.com