java 求最长子序列

时间:2022-10-26 14:16:21

package test2;

public class maxline {

public static void main(String[] args) {
//需求:5,6,7,1,2,8 的最长最子序列,输出结果应该是4。
//1.定义两个数组 一个是放置原数组 一个放置子序列。
int[] arr = {5,6,7,1,2,8};

int[] num = new int[arr.length];
//循环进行挨个比较然后取最大值。

int max = 1;
int i = 0 ;

for( i = 0 ; i<arr.length ; i++) {

num[i] = 1; // 因为算上自己本身所以初始值最少应该是1 所以应该num数组的初始值都应该是1。

for(int j = 0 ; j < i ; j++) {
if(arr[j]<arr[i]) {
num[i] = Math.max(num[i],num[j]+1);//进行比较把最大值赋给num[i]
}
}
max = Math.max(num[i],max);

}
System.out.println("最长子序列:"+max);


}

}