class Solution {
public int lengthOfLIS(int[] nums) {
int[] dp = new int[nums.length];
Arrays.fill(dp,1);
int res = 1;
for(int i=0;i<nums.length;i++){
for(int j=0;j<i;j++){
if(nums[j]<nums[i]){
dp[i] = Math.max(dp[j]+1,dp[i]);
}
}
res = Math.max(res,dp[i]);
}
return res;
}
}
// dp[i] 的意义是,以第i个数字结尾的最长子序列长度
题解:
这道题主要是要确定好dp[i]的含义,它的含义是,以第i个数字结尾的最长子序列长度,必须是以这个数字结尾,所以最后答案是,dp数组里最大的元素。