#include <stdio.h>
#include <stdlib.h>
int max(int *a,int len)//求数组的最大元素
{
int i,max;
max=a[0];
for(i=1;i<len;i++)
{
if(a[i]>max)
max=a[i];
}
return max;
}
int LIS(int * array,int n)
{
int i,j;
int *lis=(int *)malloc(n*sizeof(int));//lis[i]为包含第i个元素的最长递增子序列的长度
for(i=0;i<n;i++)
{
lis[i]=1;
for(j=0;j<i;j++)
{
if(array[i]>array[j]&&lis[j]+1>lis[i])
lis[i]=lis[j]+1;
}
}
return max(lis,n);
}
int main()
{
int str[]={1,-1,2,-3,4,-5,6,-7};
int max=LIS(str,8);
printf("max:%d\n",max);
}