题目链接
dp[i]表示以i-1位置结尾的数最长的上升子序列,模板是这个点击我查看
既然以i-1结尾的话,那么我们就要从0开始遍历,如果nums[j]<nums[i]
那么就有dp[i]=Math.dp[i]=Math.max(dp[i],dp[j]+1);
不然dp[i]=1
public int lengthOfLIS(int[] nums) {
if(nums.length<=0){
return 0;
}
int[] dp=new int[10100];
int res=-9999;
for(int i=0;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);
}
}
res=Math.max(res,dp[i]);
}
return res;
}