added dynamic programming solution to longest increasing subsequence