Leetcode 300. Longest Increasing Subsequence