## Longest Increasing Subsequence

The longest increasing subsequence is definied as follows: in a given array of numbers, to find a subsequence (not necessarily contiguous) that is strictly increasing which has the maximum length. The following algorithm finds the longest increasing subsequence in O(n log n) time. Key Implementation Data Structure This algorithm