先看看第一题,再由点到面地延伸:
1759:最长上升子序列
描述你的任务,就是对于给定的序列,求出最长上升子序列的长度。
7
1 7 3 5 9 4 8
4
这道题就是这个合集最经典的题了,也是动态规划的基础题(声明:本人动归掌握不好,如有错误,请原谅)
首先,动归和贪心不一样,不能由局部最优达到全局最优,所以解题的思路就是最大与最小,这里我们可以用一个新数组来辅助记录
a[ i ]表示第i个数,而h[ i ]表示到第i个数时,它是第几个从第“零”个数延伸到的,相当于如下表格:
程序实现相当于,每访问一个数i,就往前找,直到找到一个比其小的数j,那么h[ i ] = h[ j ]+