@dietpepsi thanks for explanation. To make the idea more clear:
The key idea is to keep each Increasing subsequence as long as possible. This means two things:
when we find a smaller number than my tail. I need to update my tail. This makes it possible to append more data to this sequence.
if we find that the number is smaller than all the subsequence's tail, this means we could create a new subsequence with bigger size with this number as the tail