题目
最长递增子序列长度
思路
动态规划
状态
maxlen[i] 下标为i时,i及之前最长递增子序列长度
maxlen[0] = 1状态转移
遍历i之前节点j
if(a[i]>a[j])maxlen[i] = Math.max(maxlen[i],maxlen[j]+1);
代码
public class Main {
public static void main(String[] args) {
int[] a = {1,3,2,4,5,1,3,7};
int[] maxlen = new int[a.length];
maxlen[0] = 1;
for(int i=1; i<a.length; i++){
for(int j=0; j<i; j++){
if(a[i]>a[j])
maxlen[i] = Math.max(maxlen[i],maxlen[j]+1);
}
}
System.out.println(maxlen[a.length-1]);
}
}