接着上一讲,我们继续来讲解dp动态规划中的经典问题:LIS问题
没看过我的dp系列上一讲的友友,可以看我合集里面的上一讲,这样更有利于理解!
我会用一个模板题+变式题来讲解dp问题中的LIS问题
LIS模板题:最长上升子序列问题:
LIS概述:LIS,longest increasing subsequence;最长上升子序列问题:
下面是其模板题目:
dp集合分析法:分析:
代码循环分析与 初始化:
显然,代码循环可以从小到大,初始化f[1]=1;
代码实现:
特别注意:
特判
处理”空“集合的情况:
LIS衍生题:怪盗基德的滑翔翼
这是LIS变形题目, 有点点的思维的巧妙,与 逆向转化 :
分析:
我们的集合dp分析法:
代码实现:正向LIS + 反向LIS :
因此:此问题得到解决!!!
总结:
这一讲讲述了dp问题的LIS经典模板, 用集合dp分析法来成功解决了问题!