//从左到右
for(int i=0;i<n;i++)
{
f1[i]=1;
for(int j=0;j<i;j++)
{
if(a[i]>a[j])
f1[i]=max(f1[i],f1[j]+1);
}
res=max(res,f1[i]);
}
//从右到左
for(int i=n-1;i>=0;i--)
{
f2[i]=1;
for(int j=n-1;j>i;j--)
{
if(a[i]>a[j])
f2[i]=max(f2[i],f2[j]+1);
}
res=max(res,f2[i]);
}
C++ 最长上升子序列模板
最新推荐文章于 2024-03-08 14:50:10 发布