Java Longest Common Subsequence Algorithms