LeetCode300 一个典型的上升子序列问题:给定一个无序的整数数组,找到其中最长上升子序列的长度。
这也是一个经典的线性DP问题,上升序列的含义是:当前序列中的元素满足位置大小关系和元素大小关系相同就可以——如果 i < j 那么 A[i] < A[j]。
那么对于一个确定的上升序列,如果要扩展这个上升序列怎么办呢?
那么对于一个序列来说,从初始位置一直到最后的位置,可以被分割为多个序列,那么算法的递推过程就相当于在不停地扩展一个已经找到的序列,如果出现了逆序关系——如果 i < j 同时 A[i] > A[j]。这个连续的关系也就中断了,所以将这个位置的长度重新初始化成1就好了。