最长不下降子序列
题目在:http://www.我的程序:
程序代码:#include <stdio.h>
#include <stdlib.h>
int longest_increasing(int num[],int n)
{
int lis[100000],j,maxn=0,i;
for(i=0;i<n;i++)
{
if(num[i]==0)continue;
lis[i]=1;
for(j=0;j<i;j++)
if(num[i]>num[j]&&lis[j]+1>lis[i])
lis[i]=lis[j]+1;
}
for(i=0;i<n;i++)
if(maxn<lis[i])
maxn=lis[i];
return maxn;
}
int main()
{
int num[100000]={0},n,i,max;
scanf('%d',&n);//输入数据数量
for(i=0;i<n;i++)
scanf('%d',&num[i]);
max=longest_increasing(num,n);//求出连续子段和
printf('%d',max);//打印最大值
system('pause');
return 0;
}只得了40分,大家看看我这个错在那里了?







