关于这道题,其实就是利用动态规划的一种思想,解这道题有点类似冒泡,采用遍历数组序列,不断更新递增序列的长度以至于来找到最长单调递增序列。
关于问题呢,大概已有有一点思路:
下面将思路画一画,通过将思想的整理,得到这样一副图:
通过图片我们可以看出要想找到最长递增子序列,我们得不断扩大范围这里是指图片中的(sub[i]所对应的区间),其实也就在小区间得到递增的序列的长度,然后继续扩大区间来更序列长度,更新到最大区间时就会找到一个最大的递增子序列。
先画一画然后得出这样的解决方案,然后就是调整代码实现这一过程便是找到最优解的方案。
以下是实现代码:
mian()函数:
#include<iostream>
using namespace std;
#define MAX(a,b) a>b?a:b