title: LRU cache design
body: <p>Least Recently Used (LRU) Cache is to discard the least recently used items first
  How do you design and implement such a cache class? The design requirements are as follows:</p>
  
  <p>1) find the item as fast as we can</p>
  
  <p>2) Once a cache misses and a cache is full, we need to replace the least recently used item as fast as possible.</p>
  
  <p>How to analyze and implement this question in terms of design pattern and algorithm design?</p>