#include <iostream>
using namespace std;
int main()
{
int num[100] = { 0 };
char temp;
int n = 0;
while (temp = getchar())
{
if (temp == ' ')
n++;
else if (temp == '\n')
break;
else
num[n] = num[n] * 10 + temp - '0';
}
n++;
int **re = new int*[n];
for (int i = 0; i < n; i++)
{
re[i] = new int[n];
re[i][0] = 1;
}
int max = 1;
for (int step = 1; step < n - 1; step++)
{
for (int i = 0; i + step < n; i++)
{
if (re[i][step - 1] != -1 && num[i + step] > num[i + step - 1])
{
re[i][step] = re[i][step - 1] + 1;
max = step + 1;
}
else
{
re[i][step] = -1;
}
}
}
cout << max;
for (int i = 0; i < n; i++)
delete[] re[i];
delete[] re;
return 0;
}
最长递增序列
最新推荐文章于 2024-07-24 20:55:30 发布