最长上升子序列,哪位高手帮我看下哪里出问题了啊。。。
#include<stdio.h>#include<stdlib.h>
main()
{
int i,j,k=0,s,p,a[100],n[100],m[100];
printf("n=");
scanf("%d",&s);
for(i=1;i<=s;i++)
scanf("%d",&a[i]);
for(i=1;i<=s;i++)
{
printf("%d\t",a[i]);
}
printf("\n");
for(i=1;i<=s-1;i++)
{
for(j=i+1;j<=s;j++)
{
if(a[j]<a[j-1])
{
k++;
n[k]=i;
m[k]=j;
break;
}
}
}
p=m[1]-n[1]+1;
for(i=1;i<=k;i++)
{
if(p<m[i]-n[i]+1)
p=m[i]-n[i]+1;
}
printf("最长的上升子序列个数为:%d\n",p);
system("pause");
}
好像多了一位