d[i] = 以第i个数字为最大值的最长不下降子序列个数字个数。
当 j < i , a[i] >= a[j],d[i] = max{ d[j] + 1 } ;
否则 d[i] = 1。
int LIS(int a[], int n) { int d[1000]; memset(d, 0, sizeof(d)); for(int i = 0; i < n; i++) { d[i] = 1; for(int j = 0; j < i; j++) { if(a[i] >= a[j] && d[j]+1 > d[i]) { d[i] = d[j] + 1; } } } printf("%d\n", d[n-1]); return d[n-1]; }