原题做了不下5遍,还是记不住。。。
dp[i] 为考虑前 i个元素,以第 ii 个数字结尾的最长上升子序列的长度。说实话这几个典型的例子,背都应该背下来了呀。。。
class Solution {
public int lengthOfLIS(int[] nums) {
if(nums.length==0){
return 0;
}
int[] dp=new int[nums.length];
dp[0]=1;
int max=1;
for(int i=1;i<nums.length;i++){
dp[i]=1;
for(int j=0;j<i;j++){
if(nums[j]<nums[i]){
dp[i]=Math.max(dp[i],dp[j]+1);
}
}
max=Math.max(dp[i],max);
}
return max;
}
}