以下是添加最长子序列的Java程序-
publicclassDemo{示例{
saticintincre _ sub seq (intmy _ arr [ ],intarr_len ) {
intseq_arr[]=newint[arr_len];
inti,j,max=0;
for(I=0; I
seq_arr[i]=1;
for(I=1; I
for(j=0; Jj
if (my _ arr [ I ] my _ arr [ j ] seq _ arr [ I ]
seq_arr[i]=seq_arr[j] 1;
for(I=0; I
最大值
max=seq_arr[i];
返回最大值;
}
publicstaticvoidmain (string args [ ] ) {
intmy _ arr [ ]={ 10,22,9,33,21,50,41,60 };
intarr_len=my_arr.length;
System.out.println ('最长增量子序列的长度为' incre_subseq(my_ARR,arr_len ) );
}
}
输出结果的最长增加子序列的长度为5
名为Demo的类包含名为" incre_subseq "的静态函数。 此函数以数组和数组的长度为参数。 将在此函数内部创建一个新的空数组。 分配给" max "变量的值为0。 for循环遍历数组的长度,并将每个元素初始化为1。
同样,重复“for”循环,然后单击另一个“
for”循环。 检查数组中的第一个元素是否等于第二个元素,以及数组(seq_arr,初始化为al1的数组)中的第一个元素是否小于第二个元素
找到并返回seq_arr中最大的元素。 这是一种动态编程技术,计算值并将其存储在数组中,不需要像递归那样多次计算。
每次需要以前计算的元素时,都从数组中检索。