1、一维:
void main01()
{
vector<int> data = { 2, 1, 6, 4, 5, 2, 7, 4};
vector<int> len(data.size(), 1); //记录长度的辅助数组
int maxx = len[0];
for (int i = 1; i < data.size(); i++)
{
int cur = 0;
for (int j = 0; j < i; j++)
{
if (data[j] < data[i] && cur < len[j])
{
cur = len[j]; //选出比当前元素小的中的len的最大值
}
}
len[i] = cur + 1; //当前元素的len值是前面比它小的并且在小的中的最大值加1(把当前元素加到序列中)
maxx = max(maxx, len[i]); //每一步直接选出当前最大值
}
cout << maxx << endl;
}