您的位置:首页 > 编程语言 > Java开发

LIS最长上升子序列

2013-10-11 16:51 218 查看
//最长上升子序列
public class LIS {
public static int lisFun(int[]arr){
int len = arr.length;
int[]lis = new int[len];
for(int i = 0 ; i < len; i++){
lis[i] = 1;//初始化从i开始寻找的序列的第一个值=1(第一个肯定能进入序列)
for(int j = 0; j < i; j++){
if(arr[j] < arr[i] && (lis[j]+1) > lis[i])
lis[i] = lis[j]+1;
}
}
int max = 0 ;
for(int i = 0 ; i < lis.length; i++){
if(lis[i] > max)
max = lis[i];
}
return max;
}
}


这里附上分析图,数组arr对应存放序列值的lis
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息