思路
- 这道题考察的是 动态规划 , 这道题的思路和最大子段和是一样的,曾经都写过最长上升子序列,动态规划的方程 可以见参考
代码
public int longestIncreasingSubsequence(int[] nums) {
int[] len = new int[nums.length];
if (nums.length == 0) {
return 0;
}
len[0] = 1;
int max ;
for (int i = 1; i < nums.length; i++) {
max = 1;
for (int j = 0; j < i; j++) {
if (nums[i] > nums[j]) {
if (max < len[j]+1) {
max = len[j]+1;
}
}
}
len[i] = max;
}
max = len[0];
for (int i = 0; i < len.length; i++) {
if (max < len[i]) {
max = len[i];
}
}
return max;
}