title: memoization for recursive Longest Increasing subsequence
body: <p>I came up with simple following recursive solution for Longest increasing sub-sequence.
  But, Can you help to include memoization into this recursive solution.</p>
  
  <pre><code>public int findLIS(int a[], int maxSoFar, int item, int count) {
  
          if(item == a.length) {
              return count;
          }
          int length1 = findLIS(a,maxSoFar, item+1, count);
          int length2 = 0;
          if(a[item] &gt; maxSoFar) {
  
              length2 = findLIS(a, a[item], item+1, count + 1);
          }
          return Math.max(length1, length2);
  }
  </code></pre>
  
  <p>PS: This not a homework question, it is more of my interest.</p>