Leetcode Longest Increasing Subsequence Dynamic Programming