编程之美2.16
o(N * N)的算法
LIS[i+1] = max {1,LIS[k] + 1 } array[i+1] > array[k] , for any k < i+1
int LIS(int [] array){
int [] LIS = new int[array.length];
for(int j = 0 ; j < i ; j ++){
LIS[i] = 1;
for(int j = 0; j < i + ; j++){
if (array[i] > array[j] && LIS[j] + 1 > LIS[i])
LIS[i] = LIS[j] + 1;
}
}
return max(LIS);
}
这个比较简单易懂,应该还是更优的算法