Look at what you can do now:
Solve LIS with DP using "ending at " states
Reduce to using binary search on tails array
Count the number of LIS by tracking both length and count
Reduce 2D (two-dimensional) problems to LIS (Russian Doll Envelopes) The "ending at " pattern is your foundation for subsequence problems. Next, you'll extend to two sequences with LCS (Longest Common Subsequence) and Edit Distance.