原题链接
扩展题目1------最大子序列
题目描述
给定一个序列 An = a1 ,a2 , ... , an ,找出最长的子序列使得对所有 i < j ,ai < aj 。
求出这个子序列的长度
示例
输入:
1 -1 2 -2 3 -3 4
输出:
4
参考代码
public static void solve(int[] a) {
// dp[i]表示从a[0]到a[i]的最长递增子序列长度
int dp[] = new int[a.length];
int max = 1;
Arrays.fill(dp, 1);
for (int i = 1; i < a.length; i++) {
for (int j = 0; j < i; j++) {
if(a[i]>a[j] && dp[i]<dp[j]+1){
dp[i] = dp[j]+1;
}
max = Math.max(max, dp[i]);
}
}
System.out.println(max);
}
总结
我觉得动态规划
的难点还是动态规划数组
怎么定义